我在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)
屏幕截图如下。
感谢任何帮助。
感谢。
答案 0 :(得分:0)
问题似乎与Mapnik 2.2在代码与xml中处理样式的方式有关。我将样式规范移到xml文件中,一切都按预期工作。