mapquest 直接磁贴访问已停止
mapquest direct tile access discontinued
截至 2016 年 7 月 11 日,MapQuest 已停止直接访问其图块。他们似乎只支持 Leaflet、iOS 和 Android SDK。知道如何让 Openlayers 再次与 MapQuest 一起工作,或者我们应该考虑不同的选择吗?谢谢。
目前,我临时切换到 Bings 地图作为解决方法。是的,它还需要一个 api 密钥,但至少它可以与 OL3 一起使用。
由于这个问题在任何感兴趣的惊慌失措的 Leaflet 用户中很受欢迎,所以这是一个快速的解决方案。
现在您需要 下载 和 Include (不要忘记您的key) MapQuest Leaflet 插件.
<script src="https://www.mapquestapi.com/sdk/leaflet/v2.2/mq-map.js?key=KEY"></script>
然后您使用 MapQuest 插件创建您的地图图层
window.map = L.map('map', {
center: [50.066, 8.73],
zoom: 13
//Or alternatively init layer here layers:MQ.mapLayer()
});
var mapLayer = MQ.mapLayer().addTo(map);
发生这个问题是因为..
无需密钥直接访问 MapQuest 地图图块将于 2016 年 7 月 11 日结束。有关获取密钥和 SDK 的详细信息。
确认可以访问以下URL
https://lists.openstreetmap.org/pipermail/talk/2016-June/076106.html
使用 OSM 源:
var osmLayer = new ol.layer.Tile({
source: new ol.source.OSM()
});
而不是这个:
new ol.layer.Tile({
source: new ol.source.MapQuest({ layer: 'osm' })
});
适用于 OL3。
我问过他们on their forum。答案是否定的,我们不能再将 MapQuest 瓦片与 MapQuest 提供的 SDK 以外的任何其他 SDK 一起使用。
此外,即使使用 MapQuest SDK,也禁止缓存/存储数据,即使是付费帐户也是如此。
如果您需要免费、无限制的全球地图,唯一的其他选择(据我所知)是 Open Street Map。虽然没有卫星图像,但不幸的是,MapQuest 是唯一的(据我所知)。
如果您准备付款,您应该可以使用 MapBox。
编辑:我刚刚通过 MapQuest 团队的电子邮件收到了另一个新消息:
actually we don't do the maps anymore, we use Mapbox.
MapQuest is focusing on some mobile and IoT applications, routing and direction engines rather than maps
就像更改 tileUrl 一样简单。
替换为:
var tileUrl = 'http://otile{s}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.png?x';
有了这个:
var tileUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
然后像以前一样使用:
L.tileLayer(tileUrl, { }).addTo(map);
我切换到 ESRI 底图,它工作正常。
确保您引用了传单:
您还可以使用 world_Street_Map 和其他 ESRI 底图。
对于带有 OpenLayers 的底图图像,我们基本上是
Bing 地图、Mapbox 和 DigitalGlobe。这三个服务都需要
一个 API 密钥,所有三个都提供免费套餐。
我目前正在使用 DigitalGlobe 并且非常满意
到目前为止,他们的分辨率和覆盖范围。要在 OpenLayers 中使用它,
首先在他们的网站上注册一个 API 密钥。
http://mapsapidocs.digitalglobe.com/
然后就用下面的图块源(记得替换YOUR_ACCESS_TOKEN):
new ol.layer.Tile({
title: 'DigitalGlobe Maps API: Recent Imagery with Streets',
attribution: "© DigitalGlobe, Inc",
source: new ol.source.XYZ({
url: 'http://api.tiles.mapbox.com/v4/digitalglobe.nal0mpda/{z}/{x}/{y}.png?access_token=YOUR_ACCESS_TOKEN'
})
})
这为您提供了他们的全球卫星图像分辨率
少则几米,多则十几厘米!他们提供
比我在这个例子中提供的更多的基础层,但是
这应该能让您快速入门。
有关 DigitalGlobe 的更多 OpenLayers 示例,请参阅此 link:
http://mapsapidocs.digitalglobe.com/docs/maps-api-openlayers
截至 2016 年 7 月 11 日,MapQuest 已停止直接访问其图块。他们似乎只支持 Leaflet、iOS 和 Android SDK。知道如何让 Openlayers 再次与 MapQuest 一起工作,或者我们应该考虑不同的选择吗?谢谢。
目前,我临时切换到 Bings 地图作为解决方法。是的,它还需要一个 api 密钥,但至少它可以与 OL3 一起使用。
由于这个问题在任何感兴趣的惊慌失措的 Leaflet 用户中很受欢迎,所以这是一个快速的解决方案。
现在您需要 下载 和 Include (不要忘记您的key) MapQuest Leaflet 插件.
<script src="https://www.mapquestapi.com/sdk/leaflet/v2.2/mq-map.js?key=KEY"></script>
然后您使用 MapQuest 插件创建您的地图图层
window.map = L.map('map', {
center: [50.066, 8.73],
zoom: 13
//Or alternatively init layer here layers:MQ.mapLayer()
});
var mapLayer = MQ.mapLayer().addTo(map);
发生这个问题是因为.. 无需密钥直接访问 MapQuest 地图图块将于 2016 年 7 月 11 日结束。有关获取密钥和 SDK 的详细信息。
确认可以访问以下URL
https://lists.openstreetmap.org/pipermail/talk/2016-June/076106.html
使用 OSM 源:
var osmLayer = new ol.layer.Tile({
source: new ol.source.OSM()
});
而不是这个:
new ol.layer.Tile({
source: new ol.source.MapQuest({ layer: 'osm' })
});
适用于 OL3。
我问过他们on their forum。答案是否定的,我们不能再将 MapQuest 瓦片与 MapQuest 提供的 SDK 以外的任何其他 SDK 一起使用。
此外,即使使用 MapQuest SDK,也禁止缓存/存储数据,即使是付费帐户也是如此。
如果您需要免费、无限制的全球地图,唯一的其他选择(据我所知)是 Open Street Map。虽然没有卫星图像,但不幸的是,MapQuest 是唯一的(据我所知)。
如果您准备付款,您应该可以使用 MapBox。
编辑:我刚刚通过 MapQuest 团队的电子邮件收到了另一个新消息:
actually we don't do the maps anymore, we use Mapbox.
MapQuest is focusing on some mobile and IoT applications, routing and direction engines rather than maps
就像更改 tileUrl 一样简单。
替换为:
var tileUrl = 'http://otile{s}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.png?x';
有了这个:
var tileUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
然后像以前一样使用:
L.tileLayer(tileUrl, { }).addTo(map);
我切换到 ESRI 底图,它工作正常。
确保您引用了传单:
您还可以使用 world_Street_Map 和其他 ESRI 底图。
对于带有 OpenLayers 的底图图像,我们基本上是 Bing 地图、Mapbox 和 DigitalGlobe。这三个服务都需要 一个 API 密钥,所有三个都提供免费套餐。
我目前正在使用 DigitalGlobe 并且非常满意 到目前为止,他们的分辨率和覆盖范围。要在 OpenLayers 中使用它, 首先在他们的网站上注册一个 API 密钥。
http://mapsapidocs.digitalglobe.com/
然后就用下面的图块源(记得替换YOUR_ACCESS_TOKEN):
new ol.layer.Tile({
title: 'DigitalGlobe Maps API: Recent Imagery with Streets',
attribution: "© DigitalGlobe, Inc",
source: new ol.source.XYZ({
url: 'http://api.tiles.mapbox.com/v4/digitalglobe.nal0mpda/{z}/{x}/{y}.png?access_token=YOUR_ACCESS_TOKEN'
})
})
这为您提供了他们的全球卫星图像分辨率 少则几米,多则十几厘米!他们提供 比我在这个例子中提供的更多的基础层,但是 这应该能让您快速入门。
有关 DigitalGlobe 的更多 OpenLayers 示例,请参阅此 link:
http://mapsapidocs.digitalglobe.com/docs/maps-api-openlayers