底图(Matlibplot)未准确绘制GPS WGS84坐标

底图(Matlibplot)未准确绘制GPS WGS84坐标,gps,matplotlib-basemap,epsg,Gps,Matplotlib Basemap,Epsg,我有一张在悉尼拍摄的Flickr照片中的纬度和经度坐标列表(见) 当我在谷歌地图上绘制这些点时,位置是正确的(请参阅) 然而,当我使用我的底图时,结果是不正确的。这在海岸线尤为明显: 我尝试过将底图更改为各种EPSG代码,但没有成功,我尝试过将坐标转换为不同的EPSG代码,但没有成功 我真的不知道接下来该怎么办。现在我只是尝试一下,但似乎没有任何效果,所以任何帮助都将不胜感激!干杯 主要代码: from mpl_toolkits.basemap import Basemap import mat

我有一张在悉尼拍摄的Flickr照片中的纬度和经度坐标列表(见)

当我在谷歌地图上绘制这些点时,位置是正确的(请参阅)

然而,当我使用我的底图时,结果是不正确的。这在海岸线尤为明显:

我尝试过将底图更改为各种EPSG代码,但没有成功,我尝试过将坐标转换为不同的EPSG代码,但没有成功

我真的不知道接下来该怎么办。现在我只是尝试一下,但似乎没有任何效果,所以任何帮助都将不胜感激!干杯

主要代码:

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
import math
import pyproj


location_data = get_location_data("sydney")[:500]
bmap = create_map()

for lat, lon in location_data:
    plot_on_map(bmap, float(lat), float(lon))

show_map()
方法:

#
#   Create a Basemap and return it
#
def create_map():
    lower_left_lat = -34.126127
    lower_left_lon = 150.951113
    upper_right_lat = -33.751265
    upper_right_lon = 151.425672


    bmap = Basemap(projection='merc', # doesn't need to be mercator
                  llcrnrlat=lower_left_lat,
                  urcrnrlat=upper_right_lat,
                  llcrnrlon=lower_left_lon,
                  urcrnrlon=upper_right_lon,
                  resolution='f',
                  epsg='4326')

    bmap.drawcoastlines()
    bmap.drawcountries()
    bmap.fillcontinents(lake_color='aqua')
    bmap.drawmapboundary()

    return bmap

#
#   Plot coordinates lat, lon on the Basemap map
#
def plot_on_map(bmap, lat, lon):
    #gda94 = pyproj.Proj(init='epsg:4283')
    #mgaz56 = pyproj.Proj(init='epsg:4326')
    #x, y = pyproj.transform(gda94, mgaz56, lon, lat)

    x,y = bmap(lon, lat)
    bmap.plot(x, y, 'bo', markersize=3)

def show_map():
    plt.show()

我想指出两件事。1) 我认为epsg参数值应该是整数。2) 您可以提供投影或epsg,但不能同时提供两者。谢谢。我完全错过了整数epsg参数。然而,即使没有投影和epsg校正,我仍然遇到同样的问题。我会继续努力!