2015-01-09 54 views
2

我試着去了解什麼是什麼,但我有點困惑:開放街道地圖API - 打開圖層/ MapQuest的

OpenStreetMap的是免費使用的地圖。可能的API這個地圖是:

-OpenLayer 
-MapQuest 

爲什麼OpenLayer使用MapQuest的代碼OpenLayer例如: http://openlayers.org/en/v3.1.1/doc/quickstart.html

<script type="text/javascript"> 
     var map = new ol.Map({ 
     target: 'map', 
     layers: [ 
      new ol.layer.Tile({ 
      source: new ol.source.MapQuest({layer: 'sat'}) 
      }) 
     ], 
     view: new ol.View({ 
      center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'), 
      zoom: 4 
     }) 
     }); 
    </script> 

也許這個問題很奇怪,但我想知道爲什麼一個API的使用來自別人的表達?

回答

6

您正在將API與框架,服務和公司混合在一起。

MapQuest是一家公司。 MapQuest Open提供基於OSM數據的各種服務,例如路由,地理編碼和tiles。因此,MapQuest Open也爲這些服務提供了各種API,但這些API不能直接與原始OSM數據交互。

OpenLayers是一個用於在網絡瀏覽器中顯示地圖的JavaScript庫,類似於Leaflet。 OpenLayers和Leaflet不以任何方式屬於OSM,它們只支持在其他地圖中顯示OSM。兩者都有自己的API來構建和顯示交互式地圖,但大多數這些API既不能直接與原始OSM數據交互。 OpenLayers和Leaflet可用於嵌入各種地圖圖塊,例如MapQuest Open或Google Maps提供的圖塊。

相比之下,OSM提供了用於編輯和檢索原始地圖數據的API。常規的editing API主要用於編輯原始地圖數據,但不用於檢索它。如果你想檢索特定的功能,那麼看看Overpass API而不是好的交互式前端overpass turbo

另請參閱OSM wiki中的list of OSM-based services以及OSM software

+1

謝謝。這正是我所期待的。 – Radek 2015-01-10 14:55:43