加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 使用Basemap映射芝加哥周围的GPS坐标

发布时间:2020-12-20 13:39:37 所属栏目:Python 来源:网络整理
导读:我正在使用 python的matplotlib和Basemap库. 我正试图在芝加哥市周围绘制一个GPS点列表,用于我正在进行的项目,但它不起作用.我已经查看了所有可用的示例,但是尽管逐字复制并粘贴它们(然后更改gps点),地图无法使用绘制的点进行渲染. 以下是一些示例点,因为它
我正在使用 python的matplotlib和Basemap库.

我正试图在芝加哥市周围绘制一个GPS点列表,用于我正在进行的项目,但它不起作用.我已经查看了所有可用的示例,但是尽管逐字复制并粘贴它们(然后更改gps点),地图无法使用绘制的点进行渲染.

以下是一些示例点,因为它们存储在我的代码中:

[(41.98302392,-87.71849159),(41.77351707,-87.59144826),(41.77508317,-87.58899995),(41.77511247,-87.58646695),(41.77514645,-87.58515301),(41.77538531,-87.58611272),(41.71339537,-87.56963306),(41.81685612,-87.59757281),(41.81697313,-87.59910809),(41.81695808,-87.60049861),(41.75894604,-87.55560586)]

这是我用于渲染地图的代码(不起作用).

# -*- coding: utf-8 -*-

from pymongo import *
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from collections import Counter
import ast

def routes_map():
    """  

    doesn't work :(
    # map of chicago
    """ 
    all_locations = []  #<-- this is the example data above
    x = []
    y = []

    for loc in all_locations:     #creates two lists for the x and y (lat,lon) coordinates
        x.append(float(loc[0]))
        y.append(float(loc[1]))

    # llcrnrlat,llcrnrlon,urcrnrlat,urcrnrlon
    # are the lat/lon values of the lower left and upper right corners
    # of the map.
    # resolution = 'i' means use intermediate resolution coastlines.
    # lon_0,lat_0 are the central longitude and latitude of the projection.
    loc = [41.8709,-87.6331]

    # setup Lambert Conformal basemap.
    m = Basemap(llcrnrlon=-90.0378,llcrnrlat=40.6046,urcrnrlon=-85.4277,urcrnrlat=45.1394,projection='merc',resolution='h')
    # draw coastlines.
    m.drawcoastlines()
    m.drawstates()

    # draw a boundary around the map,fill the background.
    # this background will end up being the ocean color,since
    # the continents will be drawn on top.
    m.drawmapboundary(fill_color='white')

    x1,y1 = m(x[:100],y[:100])
    m.plot(x1,y1,marker="o",alpha=1.0)
    plt.title("City of Chicago Bus Stops")
    plt.show()

这是我运行此代码得到的:

????

有没有人有任何关于我做错的提示?

解决方法

您不小心将纬度值输入为x,经度值为y.在您提供的示例数据中,第一列是纬度,第二列是经度,而不是您的代码似乎想到的另一种方式.

所以使用x.append(float(loc [1]))和y.append(float(loc [0]))而不是你拥有的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读