2014-05-15 51 views
2

我試圖找到一種方法來查詢開放式街景地圖的特定城市的自動櫃員機列表,任何想法如何實現這一目標?查詢自動櫃員機的開放式街道地圖

我知道我們可以使用mapquest來查詢這些信息,但它需要一個盒子,它比開放街道地圖給我的信息要少。

謝謝。

回答

4

我想你的意思是MapQuest的Nominatim實例。只是爲了記錄:Nominatim實際上是由OpenStreetMap社區創建的。 MapQuest也運行它。

查詢特定對象最好使用Overpass API完成。這個API也有一個很好的前端,overpass turbo。它使得創建查詢和運行它們非常簡單,並且還包含了一個很好的結果可視化。

這個查詢將在柏林檢索所有的自動取款機(其中被標記爲amenity=atm):

<osm-script output="json" timeout="25"> 
    <!-- fetch area 「berlin」 to search in --> 
    <id-query {{nominatimArea:berlin}} into="area"/> 
    <!-- gather results --> 
    <union> 
    <!-- query part for: 「atm」 --> 
    <query type="node"> 
     <has-kv k="amenity" v="atm"/> 
     <area-query from="area"/> 
    </query> 
    </union> 
    <!-- print results --> 
    <print mode="body"/> 
    <recurse type="down"/> 
    <print mode="skeleton" order="quadtile"/> 
</osm-script> 

您可以查看result on overpass turbo。這個查詢已經由立交橋turbo自動生成,我只需要輸入「atm in Berlin」到它的wizard

請注意,這是一個特殊的立交橋turbo查詢,無法通過立交橋API直接運行。立交橋增加了一些額外的關鍵字,如{{nominatimArea:berlin}}這將被自動替換的邊界框柏林返回Nominatim。但是,如果你已經知道了BBOX還是想找回你自己使用Nominatim,那麼你可以直接指定它:

<osm-script output="json" timeout="25"> 
    <!-- gather results --> 
    <union> 
    <!-- query part for: 「atm」 --> 
    <query type="node"> 
     <has-kv k="amenity" v="atm"/> 
     <bbox-query e="13.92242431640625" n="52.67221863915279" s="52.32778621884898" w="12.992706298828125"/> 
    </query> 
    </union> 
    <!-- print results --> 
    <print mode="body"/> 
    <recurse type="down"/> 
    <print mode="skeleton" order="quadtile"/> 
</osm-script> 

兩個立交橋API和立交橋渦輪支持各種輸出格式的結果,包括XML和JSON。

+1

scai,謝謝你給我這樣一個答案。很好的例子和解釋。 – maluk

相關問題