我试着理解什么是什么,但我有点困惑:
OpenStreetMap 可以免费使用地图。此地图可能的 API 是:
-OpenLayer
-MapQuest
为什么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>
也许这个问题很奇怪,但我想知道为什么一个API使用其他人的表达?
答案 0 :(得分: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维基中的list of OSM-based services以及OSM software。