2015-01-09 91 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

相关问题