Python:创建带有书面报告路径的地图的最佳方法是什么?

otm*_*ger 2 python png google-maps map openstreetmap

我正在寻找一种方法来在python脚本中制作地图的png文件,将行程显示为线条(我的坐标已经是lat,long和elevation).据我所知,使用谷歌地图"离线"或打印是不合法的,所以我的目标是OpenStreet地图.

你能给我推荐一种方法吗?任何可以帮助我的模块?甚至是一个例子?

谢谢!

Stu*_*rey 6

我不能高度推荐tilemill来完成这类任务.它允许您从大型选择中选择基本地图或从OSM数据导入自己的样式.它还对您的路线等数据层提供了很好的支持.最重要的是,它有很棒的文档和教程.

如果你想完全停留在python中,那么我建议使用Mapnik库.

您将需要一个数据文件,如shape文件在这里:

ne_110m_admin_0_countries.shp

一个xml样式文件:

<Map background-color="black" srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs">
  <Style name="My Style">
    <Rule>
      <PolygonSymbolizer fill="#f2eff9" />
      <LineSymbolizer stroke="rgb(50%,50%,50%)" stroke-width="5.0" />
    </Rule>
  </Style>
  <Layer name="world" srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs">
    <StyleName>My Style</StyleName>
    <Datasource>
      <Parameter name="type">shape</Parameter>
      <Parameter name="file">ne_110m_admin_0_countries.shp</Parameter>
    </Datasource>
  </Layer>
</Map>
Run Code Online (Sandbox Code Playgroud)

和一个python脚本:

import mapnik
stylesheet = 'world_style.xml'
image = 'world_style.png'
m = mapnik.Map(2000, 1500)
mapnik.load_map(m, stylesheet)
m.zoom_all() 
mapnik.render_to_file(m, image)
print "rendered image to '%s'" % image
Run Code Online (Sandbox Code Playgroud)