首页 > 解决方案 > 底图上的坐标似乎在 0,0

问题描述

我正在尝试在地图上绘制一些经度和纬度坐标basemap。我正在运行的代码是:

m = Basemap(projection='merc', resolution='i',
            llcrnrlat=min_lat - 3, urcrnrlat=max_lat + 3,
            llcrnrlon=min_long - 3, urcrnrlon=max_long + 3)
m.drawcoastlines()
m.fillcontinents(color="#FFDDCC", lake_color='#DDEEFF')
m.drawmapboundary(fill_color='#DDEEFF')
m.drawcountries(linewidth=1)
for coordinates in locations:
    m.scatter(coordinates[1], coordinates[0], marker='D', color='m')

plt.show()

在哪里:

min_lat, min_long, max_lat, max_long = 48.9810946, -0.014840257753543178, 60.448137, 24.9362469

并且此设置中的坐标,即locations(通过 绘制for loop)是这六个:

[55.663457, 12.34772]
[53.5797869, 10.0131747]
[53.549816899999996, 10.048393278279384]
[52.3353336, 4.9294416]
[51.5118813, -0.0010296]
[51.5118813, -0.0010296] 

结果是:

在此处输入图像描述

你可能会看到左下角有一些紫色,我猜这是所有点都包裹在同一个点上。

我试图让地图更大,但结果相同,我也尝试在相同的结果之间m.scatter(coordinates[1], coordinates[0], marker='D', color='m')切换m.scatter(coordinates[0], coordinates[1], marker='D', color='m')

我在这里做错了什么?(是的,这是我第一次使用basemap,所以请耐心等待)。

标签: pythonmatplotlib-basemap

解决方案


重新安排您的日期并调用您的 Basemap 对象m()来计算地图投影坐标。

lons = [12.34772, 10.0131747, 10.048393278279384, 4.9294416, -0.0010296, -0.0010296]
lats = [55.663457, 53.5797869, 53.549816899999996, 52.3353336, 51.5118813, 51.5118813]

x, y = m(lons, lats)

m.scatter(x, y, marker='D',color='m')

是一个教程。


推荐阅读