можно здесь использовать Nokia REST map API в openlayer?

Я пытаюсь использовать REST API Nokia Here Maps в OpenLayers, но не могу понять, как это сделать.

  1. Можно ли Nokia Here Maps использовать в OpenLayers?
  2. Nokia Here Maps поддерживает TMS?

Кто-нибудь знает, как пользоваться Nokia Maps by OpenLayers или OpenScales?


person Jack    schedule 03.04.2013    source источник


Ответы (2)


Хотя это технически возможно, но, если вы не будете очень осторожны, весьма вероятно, что вы нарушите Положения и условия Служб геолокации Here Maps. - в частности, два пункта ниже:

5 ОГРАНИЧЕНИЙ

(ii) Вы не будете ... сшивать несколько изображений статической карты вместе для отображения карты, размер которой> превышает разрешенный в документации служб платформы определения местоположения;

Подраздел 5 (ii) запрещает использование RESTful Map API в Открытые слои, так как вы будете эффективно объединять изображения карты вместе.

(iv) Вы не будете удалять или скрывать какие-либо уведомления об авторских правах или товарных знаках или другие подобные уведомления, маркировки или легенды из Служб платформы определения местоположения, независимо от того, исходят ли такие уведомления, маркировка, легенды или другой брендинг от NAVTEQ или третьей стороны;

Подраздел 5 (iv) разработан, чтобы помешать кому-либо использовать данные карт без надлежащей атрибуции, поскольку Nokia сама обязана отображать авторские права на свои карты, где данные карты были куплены у третьих лиц.

Самый простой способ избежать этой проблемы - использовать HERE Map API для JavaScript, который общедоступен в базовом плане и уже правильно отображает всю необходимую информацию об авторских правах.

Если вы настроены использовать Open Layers для отображения ваших Nokia Maps, вам необходимо будет напрямую использовать сервис Nokia Map Tile (Сервис Map Tile поддерживает TMS) - однако эта услуга доступна только для Enterprise. клиенты. Чтобы получить к нему доступ, вам необходимо:

  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), поскольку правильный текст для указания авторских прав должен быть получен с сервера во время выполнения.

person Jason Fox    schedule 09.04.2013
comment
Я пытаюсь использовать TMS, но не могу понять, как это сделать. Сейчас я пытаюсь проверить базовый план. - person Jack; 10.04.2013
comment
Где я могу найти несколько примеров TMS для использования карты nokia. - person Jack; 10.04.2013
comment
@CaoLu Базовый план не включает службу фрагментов карты - вам понадобится корпоративный план. Используйте ссылку Связаться с нами, как описано выше, чтобы получить доступ. Относительно того, допустимо ли использование открытых слоев в рамках Условий и условий - это коммерческое решение. Самый простой ответ - использовать JavaScript API. - person Jason Fox; 10.04.2013
comment
Спасибо, Джейсон, можно ли обернуть JavaScript API с помощью flex, чтобы я мог использовать Nokia Map без изменения текущих приложений - person Jack; 10.04.2013
comment
@CaoLu Вы можете посмотреть, как встраивать JavaScript в Flex, используя что-то вроде JSInterface. В качестве альтернативы вы можете использовать платформу HTML5 для мобильных устройств - person Jason Fox; 10.04.2013

1 Да, вы можете использовать его с OpenLayers. Как уже отмечалось в ответе Джейсона Фокса, вам понадобится идентификатор приложения n и токен. Точно так же, как раньше запрашивал gmaps 2.

Я пытаюсь создать новый слой, расширяющий OpenLayers.Layer.EventPane, чтобы прикрепить карты Here внутри его элемента dom. Это очень похоже на OpenLayers.Layer.Google, откуда я взял идеи.

2 Да. У него есть класс провайдера nokia.maps.map.provider.ImgTileProvide.

Также следующий тест демонстрирует, что базовые карты - instanceof TileProvider:

alert( '' + ( nokia.maps.map.Display.NORMAL instanceof nokia.maps.map.provider.ImgTileProvider ) );
person cavila    schedule 30.05.2013