这里Map Tile API:从EPSG:3857坐标中检索地图块地址

时间:2015-04-21 13:55:50

标签: javascript geolocation openlayers here-api

我必须将现有openlayers 2应用程序的地图图块提供程序从OpenStreetMaps更改为Here贴图。为实现这一目标,我尝试实施UsingCustomTiles中描述的类似方法。

现在我不知道如何将我的EPSG:3857坐标(边界)映射到正确的z / x / y平铺地址。在Map Tile API Developer's Guide中有一个计算示例来获取EPSG:4326坐标的正确平铺地址,我认为不需要重新投影我的坐标,因为地图和坐标是投影的mercator。

此外,我不确定在openlayers映射中为maxExtent和maxResolution设置了什么值,也许这就是我的情况下UsingCustomTiles示例失败的原因。

有人可以提供一个提示吗?

1 个答案:

答案 0 :(得分:0)

如何使用OpenLayers.Layer.XYZ()方法?以下内容应该有效:

var map = new OpenLayers.Map({
        div: "map",
        projection: "EPSG:900913",
        displayProjection: "EPSG:4326",
        numZoomLevels: 21
    });

var normalDay = new OpenLayers.Layer.XYZ(
    "normal.day",
    [
        "http://1.maps.nlp.nokia.com/maptile/2.1/maptile/newest/normal.day/${z}/${x}/${y}/256/png8?app_id=" + app_id + "&app_code=" + app_code,
        "http://2.maps.nlp.nokia.com/maptile/2.1/maptile/newest/normal.day/${z}/${x}/${y}/256/png8?app_id=" + app_id + "&app_code=" + app_code,
        "http://3.maps.nlp.nokia.com/maptile/2.1/maptile/newest/normal.day/${z}/${x}/${y}/256/png8?app_id=" + app_id + "&app_code=" + app_code,
        "http://4.maps.nlp.nokia.com/maptile/2.1/maptile/newest/normal.day/${z}/${x}/${y}/256/png8?app_id=" + app_id + "&app_code=" + app_code
    ], {
        attribution: "Tiles &copy; <a href='http://here.com/'>Nokia</a>",
        sphericalMercator: true,
        wrapDateLine: true,
        transitionEffect: "resize",
        buffer: 1,
        numZoomLevels: 21
    }
);
 map.addLayers([
        normalDay
    ]);