簡體   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