打开街道地图API - 打开图层/ MapQuest

Rad*_*dek 2 openstreetmap mapquest openlayers-3

我试着理解什么是什么,但我有点困惑:

OpenStreetMap可以免费使用地图.此地图可能的API包括:

-OpenLayer 
-MapQuest
Run Code Online (Sandbox Code Playgroud)

为什么OpenLayer在OpenLayer示例中使用MapQuest代码: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>
Run Code Online (Sandbox Code Playgroud)

也许这个问题很奇怪,但我想知道为什么一个API使用其他人的表达?

sca*_*cai 6

您正在将API与框架,服务和公司混合在一起.

MapQuest是一家公司.MapQuest Open提供基于OSM数据的各种服务,例如路由,地理编码和磁贴.因此,MapQuest Open也为这些服务提供了各种API,但这些API不能直接与原始OSM数据交互.

OpenLayers是一个用于在Web浏览器中显示地图的JavaScript库,类似于Leaflet.OpenLayers和Leaflet不以任何方式属于OSM,它们只支持在其他地图中显示OSM.两者都有自己的API用于构建和显示交互式地图,但大多数这些API既不直接与原始OSM数据交互.OpenLayers和Leaflet可用于嵌入所有类型的地图图块,例如MapQuest Open甚至Google Maps提供的图块.

相比之下,OSM提供了用于编辑和检索原始地图数据的API.常规编辑API主要用于编辑原始地图数据,但不用于检索原始地图数据.如果您想要检索特定功能,请查看Overpass API,以及漂亮的交互式前端立交桥turbo.

另请参阅OSM wiki中的基于OSM的服务列表以及OSM软件.