簡體   English   中英

如何使用 geopandas 在 geojson map 上找到相應 XY 坐標的任意 Z 坐標?

[英]How do I find an arbitrary Z coordinate for a corresponding X Y coordinate on a geojson map with geopandas?

我正在嘗試定位給定 map 上某個點的 Z 坐標。 我正在嘗試使用Geodataframe.sjoin()方法。 出於測試目的,我正在創建一個任意點並嘗試找到與我的地理數據的交集。 每當我使用我的數據中的實際坐標作為點(隨機選擇幾何的單個 XY 坐標)時,我似乎都找不到任何交點。 我唯一一次遇到交叉點是當我選擇一個只與“外部”多邊形相交的點時(見下圖)。

test_point= {'geometry': [ Point(16.844, 46.89) ]  }
gdf_p = geopandas.GeoDataFrame(test_point, crs="EPSG:4326")
gdf_p.crs=data_all.crs #to check if same

我的數據具有這種格式,具有各種幾何形狀具有 3D 線串幾何圖形的 GeoDataFrame

這是我基於不同 ID 的數據的原始 plot:

fig, ax1 = plt.subplots(figsize=(10,10))
data_all.plot(ax=ax1,column='Id')

原裝 plot:

一個綠色的曲線形狀,可能類似於一組路段,位於圖形的中心。這個形狀顯然是由許多不同的線段組成的,它們的顏色和強度都略有不同。曲線形狀的兩端都有綠色的小圓環,一條較短的直線在中點附近與長曲線相交,形成一個類似於程式化的小寫f的形狀。整套綠線是針對一個更大的斑點橙色多邊形設置的。

join_inner_df = data_all.sjoin(gdf_p,how='inner')
fig, ax1 = plt.subplots(figsize=(10,10))
gdf_p.plot(ax=ax1,markersize=300,color='red')
data_all.plot(ax=ax1,column='LaneType')

Plot合:

相同的綠色彎曲形狀,但沒有橙色區域斑點。一個用紅點表示的交點出現在靠近中間的綠色曲線下方

加入的 GeoDataframe 為空。 但是,如果我將我的點重新定位到實際軌道未被覆蓋的地方,而只是覆蓋多邊形,我會得到一個多多邊形相交。

Plot 發現多面相交:

fig, ax1 = plt.subplots(figsize=(10, 10))
gdf_p.plot(ax=ax1, markersize=300, color='red')
data_all.plot(ax=ax1, column='LaneType')

與上次相同的曲線形狀,但交點紅點移動到圖形的右側中心,並且不接觸綠色曲線形狀

我不確定我錯過了什么,因為軌道內的幾何圖形應該與軌道外的多邊形一樣具有交叉點。 先感謝您。

我的問題很可能是,在幾何之間存在任何幾何都沒有描述的區域,因此它與我的觀點沒有交集。 一種解決方法是我在一個點周圍創建一個緩沖區,與之相交,然后計算點和相交幾何圖形之間的距離。 最近幾何體的最近點的 z 坐標可以是近似結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM