2015-08-17 38 views

回答

1

這是目前不可能與谷歌地圖。像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> 

將所有點的緯度/經度數據組合爲多段線後,您將獲得道路幾何圖形。