繁体   English   中英

绘制伦敦,纬度坐标的城市名称

[英]Plot city names for lon,lat coordinates

我想使用底图包将城市的名称绘制到德国地图上。 我指定了经度和纬度值:

Cname=Form_Cities["name"].values    
Clat=Form_Cities["lat"].values
Clon=Form_Cities["lon"].values

此外,

map=Basemap(projection="lcc",resolution="l",width=1E6,height=1E6,lon_0=9.9167,lat_0=51.5167,fix_aspect=False)#Resturn just the empty "figure with no conotents on it
map.shadedrelief()
map.drawcountries(color="black",zorder=1,linewidth=1)

与:

ax.annotate(s=Cname,xy=(Clon,Clat),xycoords="axes pixels")

我想绘制城市名称,但无法正常工作,但返回异常

ValueError:对象对于所需数组而言太深

您必须循环绘制城市名称和标记:

...
# convert your coords to map projection coords
yp,xp = map(yp,xp)
map.plot(xp, yp, 'ro', markersize=4) # plot markers
for label, xpt, ypt in zip(point_lables, xp, yp): # add annotation (city names)
   plt.text(xpt+0.5, ypt+0.01, label, color='firebrick', fontsize=7)
...

我已经这样解决了:

x,y=map(Clon,Clat)
[ax.annotate(s=nme,xy=(xp,yp),color="gray",alpha=0.5,fontsize=6) for nme,xp,yp in zip(Cname,x,y)

但是我仍然不明白为什么我必须使用map(Clon,Clat)转换x和y坐标,因为实际上Clon和Clat必须表示llcrnrlon左下角地理经度和llcrnrlat如果我遵循,则左下角地理纬度值底图方法的语法:

mpl_toolkits.basemap.Basemap(llcrnrlon =无,llcrnrlat =无,urcrnrlon =无,urcrnrlat =无,llcrnrx =无,llcrnry =无,urcrnrx =无,urcrnry =无,宽度=无,高度=无,投影=' ',resolution ='c',area_thresh = None,rsphere = 6370997.0,ellps = None,lat_ts = None,lat_1 = None,lat_2 = None,lat_0 = None,lon_0 = None,lon_1 = None,lon_2 = None,o_lon_p =无,o_lat_p =无,k_0 =无,no_rot =假,抑制=抽动=真,卫星高度= 35786000,边界lat =无,fix_aspect =真,锚='C',天体=假,圆=假,epsg =无,斧=没有)

但我没有这样做:

Clat=Form_Cities["lat"].values
Clon=Form_Cities["lon"].values

还是我错了?

可以请任何人向我解释一下吗?

如何在坐标(纬度,经度)中计算截然相反的坐标,其中-90 <lat<90 and -180<lon<180< div><div id="text_translate"><p> 给定坐标点 X=(lat, lon) 和圆心 C=(lat_center, lon_center) 我想计算点 X 截然相反的坐标(假设 X 在圆心为 C 的圆内) .</p><p> 例如,如果 C=(45.9, 180),则与 X=(45.9, -179) 截然相反的值应该是 (45.9, 179)。</p><p> 以下 function 是一个近似值,但不能解决纬度在 (-90, 90) 和经度 (-180, 180) 之间的问题。</p><pre> def f(lat, lon, center): lat_center = center[0] lon_center = center[1] dist_lon = np.abs(lon - lon_center) if np.abs(lon - lon_center)&lt;180 else 360 - np.abs(lon - lon_center) dist_lat = np.abs(lat - lat_center) if np.abs(lat - lat_center)&lt;180 else 360 - np.abs(lat - lat_center) lon_op = lon_center + dist_lon if lon_center + dist_lon.= lon else lon_center - dist_lon lat_op = lat_center + dist_lat if lat_center + dist_lat,= lat else lat_center - dist_lat return np,round(lat_op. 2), np.round(lon_op, 2)</pre> </div></lat<90>

[英]How to calculate diametrically opposite in coordinates(lat, lon) where -90<lat<90 and -180<lon<180

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何对纬度/经度进行分类以找到最近的城市 如何识别xarray中的时间,长度和纬度坐标? 如何在python中为数据集分配纬度/经度坐标? Geopy 生成错误的坐标(纬度和经度) 测量纬度/经度坐标和utm坐标之间的距离 Cartopy:将点从轴坐标转换为纬度/经度坐标 如何使用cartopy将显示坐标转换为geographoc坐标(纬度,经度)? 如何在坐标(纬度,经度)中计算截然相反的坐标,其中-90 <lat<90 and -180<lon<180< div><div id="text_translate"><p> 给定坐标点 X=(lat, lon) 和圆心 C=(lat_center, lon_center) 我想计算点 X 截然相反的坐标(假设 X 在圆心为 C 的圆内) .</p><p> 例如,如果 C=(45.9, 180),则与 X=(45.9, -179) 截然相反的值应该是 (45.9, 179)。</p><p> 以下 function 是一个近似值,但不能解决纬度在 (-90, 90) 和经度 (-180, 180) 之间的问题。</p><pre> def f(lat, lon, center): lat_center = center[0] lon_center = center[1] dist_lon = np.abs(lon - lon_center) if np.abs(lon - lon_center)&lt;180 else 360 - np.abs(lon - lon_center) dist_lat = np.abs(lat - lat_center) if np.abs(lat - lat_center)&lt;180 else 360 - np.abs(lat - lat_center) lon_op = lon_center + dist_lon if lon_center + dist_lon.= lon else lon_center - dist_lon lat_op = lat_center + dist_lat if lat_center + dist_lat,= lat else lat_center - dist_lat return np,round(lat_op. 2), np.round(lon_op, 2)</pre> </div></lat<90> 如何从 lon/lat 坐标计算形状并用 plotly 绘制 从字典导入的真实距离经纬度坐标
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM