我在Ubuntu 16.04环境中使用来自Python 2.7的Mapnik v2.2.0。这个应用程序在不同的坐标上用一组MarkerSymbolizers生成地图。在一张地图中,当MarkerSymbolizers设置为25x25像素时,其中一个标记不会出现。如果标记大小设置为15x15,则会显示所有标记。
标记是从csv文件加载的:
layer = mapnik.Layer('GPS_tracking_points')
layer.datasource = mapnik.CSV(file=leak_file_name, layer_by_index=0)样式如下:
point_style = mapnik.Style()
point_rule = mapnik.Rule()
point_filter = mapnik.Filter ("[val] > 10")
point_rule.filter = point_filter
point_point_symbolizer = mapnik.MarkersSymbolizer()
point_point_symbolizer.width = mapnik.Expression ('25')
point_point_symbolizer.height = mapnik.Expression ('25')
point_point_symbolizer.fill = mapnik.Color ('#ff0000')
point_point_symbolizer.allow_overlap = True
point_point_symbolizer.opacity = 0.5 # semi-transparent
point_rule.symbols.append(point_point_symbolizer)
point_style.rules.append(point_rule)
map_canvas.append_style('high', point_style)截图如下。
任何帮助都是非常感谢的。
谢谢。


发布于 2017-08-31 00:09:11
这个问题似乎与Mapnik2.2在代码和xml中处理样式的方式有关。我将样式规范移到一个xml文件中,一切都如预期的那样工作。
答案可以在这里找到:https://github.com/mapnik/python-mapnik/issues/117
https://stackoverflow.com/questions/45492630
复制相似问题