簡體   English   中英

獲取道路的幾何圖形(線/圖)

[英]Get the geometry (line/draw) of a road

如何在陣列中獲取道路的幾何圖形(線/圖)?

這是可能的?

謝謝!

[抱歉我的英語不好]

Google地圖當前無法做到這一點。 OpenStreetMap這樣的開源Web服務能夠在給定范圍內返回數據庫中所有道路的幾何圖形(幾乎所有道路)。 可以使用稱為Overpass的API在HTTP中檢索此數據。

查找屬於特定道路的所有節點的查詢可以是:

way(s,w,n,e)["name"="Your Road Name"];out;

s,w,n,e位於數據的來源地的南,西,北和東邊界。

您將需要知道近似界限。 可以通過在Google中對道路進行地理編碼,然后將返回的坐標擴展為0.1度來實現。

這將返回一個XML文檔:

<osm version="0.6" generator="Overpass API">
<note>
The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.
</note>
<meta osm_base="2015-08-17T12:36:02Z"/>
<way id="16578496">
<nd ref="2399812387"/>
<nd ref="2399812388"/>
<nd ref="2399812389"/>
<nd ref="2399812390"/>
<nd ref="171131426"/>
<tag k="highway" v="residential"/>
<tag k="name" v="Halifax Court"/>
<tag k="tiger:cfcc" v="A41"/>
<tag k="tiger:county" v="Guilford, NC"/>
<tag k="tiger:name_base" v="Halifax"/>
<tag k="tiger:name_type" v="Ct"/>
<tag k="tiger:reviewed" v="no"/>
<tag k="tiger:zip_left" v="27265"/>
<tag k="tiger:zip_right" v="27265"/>
</way>
</osm>

之后,可以使用以下命令查詢所有節點引用:

node(2399812389);out;

您一次只能查詢一個節點。 這將返回類似:

<osm version="0.6" generator="Overpass API">
<note>
The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.
</note>
<meta osm_base="2015-08-17T12:58:02Z"/>
<node id="2399812389" lat="36.0107609" lon="-79.9805742"/>
</osm>

將所有點的緯度/經度數據合並為折線后,您便擁有了道路幾何形狀。

暫無
暫無

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

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