6

我正在尝试在 OpenLayers 中使用诺基亚 Here Maps REST API,但我不知道如何使用。

  1. 可以Nokia Here Maps在 OpenLayers 中使用吗?
  2. Nokia Here Maps支持TMS吗?

有谁知道如何通过 OpenLayers 或 OpenScales 使用诺基亚地图?

4

2 回答 2

6

虽然这在技术上是可行的,但除非您非常小心,否则极有可能违反 Here Maps 定位服务条款和条件- 特别是以下两个条款:

5 限制

(ii) 您不会……将多个静态地图图像拼接在一起以显示 > 大于位置平台服务文档中允许的地图;

第 5(ii) 小节将禁止在Open Layers中使用RESTful Map API ,因为您将有效地将地图图像平铺在一起。

(iv) 您不会从位置平台服务中删除或掩盖任何版权或商标通知或其他类似通知或标记或图例,无论此类通知、标记、图例或其他品牌是否来自 NAVTEQ 或第三方;

第 5(iv) 小节旨在阻止有人在没有适当归属的情况下使用地图数据,因为诺基亚本身有义务在其地图上显示从第三方购买的地图数据的版权。

避免此问题的最简单方法是使用适用于 JavaScript 的 HERE Map API,它在基本计划中公开可用,并且已经正确显示了所有必要的版权信息。

如果您决定使用 Open Layers 来显示您的诺基亚地图,则需要直接使用诺基亚的地图拼贴服务(地图拼贴服务确实支持 TMS) - 但该服务仅适用于企业客户。要访问此内容,您需要:

  1. 从定价计划页面“请求具有更多功能的自定义包” - 只需单击“联系我们”按钮。
  2. 然后,您可以派生一个OpenLayers.Layer.XYZ层,如下面的代码片段所示:

(当然,您需要使用正确的 URL、APP_ID 和 TOKEN)

var map = new OpenLayers.Map({
    div: "map",
    projection: "EPSG:900913",
    layers: [
        new OpenLayers.Layer.XYZ(
            "HereMap", 
            [
                "MAP_TILE_BASE_URL/${z}/${x}/${y}/256/png8?lg=ENG&app_id=YOUR_APP_ID&token=YOUR_TOKEN"
            ],
            {
                attribution: "&copy; 2013 Nokia</span>&nbsp;<a href='http://maps.nokia.com/services/terms' target='_blank' title='Terms of Use' style='color:#333;text-decoration: underline;'>Terms of Use</a></div> <img src='http://api.maps.nokia.com/2.2.4/assets/ovi/mapsapi/by_here.png' border='0'>",
                transitionEffect: "resize"
            }
        )
    ],
    center: [0, 0],
    zoom: 1
});

map.addControl(new OpenLayers.Control.LayerSwitcher());

这仍然不一定符合 5(iv),但是因为版权归属的正确文本需要在运行时从服务器获取。

于 2013-04-09T09:04:56.280 回答
1

1 是的,您可以将它与 OpenLayers 一起使用。正如 Jason Fox 的回答中已经指出的那样,您将需要一个应用程序 ID 和令牌。就像 gmaps 2 用来请求一样。

我要做的是创建一个扩展 OpenLayers.Layer.EventPane 的新层,以将 Here 映射附加到他的 dom 元素内。这很像我从中获取想法的 OpenLayers.Layer.Google。

2 是的。它有这个提供程序类 nokia.maps.map.provider.ImgTileProvide。

以下测试还证明了基本地图是 TileProvider 实例:

alert( '' + ( nokia.maps.map.Display.NORMAL instanceof nokia.maps.map.provider.ImgTileProvider ) );
于 2013-05-30T00:39:56.807 回答