2013-03-12 7 views
0

Я читал, что вы можете искать страну, используя код страны (я пробовал ее с Nokia Here, это замечательно), код моей страны «SV» (я из Сальвадора), но я не знаю знать, как реализовать. Я нашел эти коды в руководстве API: Interface nokia.maps.search.Address, но у них нет никакого примера.Как я могу указать страну с кодом страны с Nokia Maps?

Не могли бы вы дать мне очень простой пример того, как реализовать? Потому что я не мог найти ни одного примера. И если вы знаете, как установить автоматическое масштабирование в стране, которую вы выберете, я буду слишком благодарен. Большое вам спасибо за вашу помощь и ваше драгоценное время.

ответ

2

Служба геокодирования карты HERE описана в документации - here - обратите внимание, что последняя версия API - это версия 2.2.4, а не 2.1.1, упомянутая в вашей ссылке.

последняя библиотека должна быть загружена с помощью следующего сценария

<script type="text/javascript" charset="UTF-8" src="http://api.maps.nokia.com/2.2.4/jsl.js?with=all"></script> 

запросы геокодирования могут быть сделаны с использованием либо свободный текстовый адрес или структурированный адрес.

Для свободного поиска текста вы делаете запрос, как показано ниже:

var searchTerm = "berlin"; 

nokia.places.search.manager.geoCode({ 
    searchTerm: searchTerm, 
    onComplete: processResults 
}); 

Найдет самый большой город во всем мире под названием BERLIN т.е. один в Германии.

Для структурированного поиска адреса вы делаете запрос, как показано ниже:

var address = new Object(); 

address.countryCode = "USA"; 
address.city = "Berlin"; 

nokia.places.search.manager.geoCode({ 
    address: address, 
    onComplete: processResults 
}); 

Найдет город Берлин в Нью-Гемпшир США. адрес объект может содержать любой из признаков, описанных в address

Что касается трансфокатора в стране - это на самом деле тип findPlaces поиск - вы ищете первый (то есть самое важное) результат мест найдите административный регион с названием страны. Следующий код будет увеличить Сальвадору:

var zoomTo = function (data, status) { 

    if (status == "OK") { 
     var locations = data.results.items; 
     for (var i = 0, len = locations.length ; i < len ; i++) { 

      if ("administrative-region" == locations[i].category.categoryId){        
       map.zoomTo(nokia.maps.geo.BoundingBox.coverAll 
         ([locations[i].boundingBox.topLeft, 
         locations[i].boundingBox.bottomRight ]), false); 
       break; 
      } 
     } 
    } else { 
     alert("The search request failed"); 
    } 
}; 

var term = "El Salvador";  
nokia.places.search.manager.findPlaces({ 
    searchTerm: term, 
    onComplete: zoomTo , 
    boundingBox: { 
     topLeft: { 
      latitude: 85, 
      longitude: -179.99 
     }, 
     bottomRight: { 
      latitude: -85, 
      longitude: 179.99 
     } 
    } 
}); 
+0

Я не знаю, где мне нужно добавить код http://pastebin.com/5a6ZJ9Zc, потому что я попробовал это, и я ничего не делал:/ –

+0

Я попытался отладить ваш код с помощью Firebug, и есть простое решение вашей проблемы. В моем коде Дисплей называется * map * - в вашем коде Дисплей называется * display *. Вам нужно изменить строку, начинающуюся с 'map.zoomTo (...)' to 'display.zoomTo (...)' –

+0

Большое спасибо за вашу помощь :) –