琅嬛玉洞——珍藏天下编程典籍

Python 给定的经纬度标注在地图上

首先给大家推荐一下我老师大神的人工智能教程。教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子!点这里可以跳转到教程

博主最近发现了python中一个好玩的包叫basemap,使用这个包可以绘制地图。值得说一下的是,basemap还没有pip检索,因此不能直接使用pip install basemap,来安装这个包。所以需要自己把下面两个包自行下载,然后在该目录下使用pip安装。感觉我说话有点骚的补充,这两个包点击下载

pyproj-1.9.5.1-cp36-cp36m-win_amd64.whlbasemap-1.1.0-cp36-cp36m-win_amd64.whl

下载安装包后,将安装包放在python/Scripts目录下(就是pip安装的目录),然后运行

pip install .\pyproj-1.9.5.1-cp36-cp36m-win_amd64.whlpip install .\basemap-1.1.0-cp36-cp36m-win_amd64.whl

先上个效果图,可以发现这个工具包还是很强大的,下面介绍下怎么在地图上标注出经纬度的地点。

整个画图流程分为两部分,第一部分是绘制一个世界地图,代码如下:

from mpl_toolkits.basemap import Basemap m = Basemap()         # 实例化一个mapm.drawcoastlines()    # 画海岸线m.drawmapboundary(fill_color='white')    m.fillcontinents(color='white',lake_color='white') # 画大洲,颜色填充为白色# m.fillcontinents(color='none',lake_color='white') # 如果color设置为none,则地图为透明 parallels = np.arange(-90., 90., 10.)    # 这两行画纬度,范围为[-90,90]间隔为10m.drawparallels(parallels,labels=[False, True, True, False])meridians = np.arange(-180., 180., 20.)   # 这两行画经度,范围为[-180,180]间隔为10m.drawmeridians(meridians,labels=[True, False, False, True])

第二部分是标注出经纬度所在的地点,这部分比第一步简单多了,直接用scatter()方法就可以了,代码如下:

lon, lat = m(lon, lat)    # lon, lat为给定的经纬度,可以使单个的,也可以是列表m.scatter(lon, lat, s=100)# 标注出所在的点,s为点的大小,还可以选择点的性状和颜色等属性plt.show()

P.S. 将大洲的填充色置为none,则为透明,效果如图

点这里可以跳转到人工智能教程

发表评论

电子邮件地址不会被公开。