2014-02-02 3 views
0

Я пытаюсь сделать обратный вызов геокодирования для нокиа здесь API Карт:Nokia здесь карты Поиска менеджер

var searchManager = new nokia.maps.search.Manager(); 
var searchCallback = function (observedManager, key, value) { 
       if (value == "finished" && observedManager.locations[0]) { 
       alert(observedManager.locations[0].displayPosition); 
      } else { 
       alert("Geocoding failed."); 
      } 
     }; 
searchManager.addObserver("state", searchCallback); 

function ricerca(){ 
var text = $('#search').val(); 
alert(text); 
searchManager.search(text); 
} 

Когда я делаю вызов, я получаю следующее сообщение об ошибке:

«неперехваченный типа ошибка: не удается вызвать метод «поиск» неопределенного «

Я не настолько опытен в javascript, может быть, это глупая проблема, но я застрял здесь много времени ... кто-нибудь понимает, где моя ошибка ?

ответ

0

Наиболее вероятной проблемой, которую вы испытываете, является то, что переменная searchManager, которую вы настраиваете, не входит в объем функции ricerca() - по общему признанию, это не должно происходить из фрагмента кода, который вы вставили, но, возможно, если вы определяют searchManager в отдельной функции, которую он не задает с глобальной областью?

т.е. если у вас есть:

function setup(){ 
    var searchManager = new nokia.maps.search.Manager(); 
    // etc... 
} 

function ricerca(){ 
searchManager.search(text); 
} 

попробуйте изменить его:

var searchManager; 
function setup(){ 
    searchManager = new nokia.maps.search.Manager(); 
    // etc... 
} 

function ricerca(){ 
searchManager.search(text); 
} 

Второй возможностью было бы проверить, что вы используете последнюю 2.5.3 версию API, с дополнительным параметром with, если необходимо.

Maps API для JavaScript

Если вы используете общественного JavaScript API, вы должны загрузить библиотеку со следующими <script> тегом:

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

и поиск с помощью статическогоnokia.places.search.manager, как показано на этом example

Enterprise Maps API для JavaScript

Если же вы используете Enterprise JavaScript API, то <script> тег:

<script type="text/javascript" charset="UTF-8" src="https://js.api.here.com/ee/2.5.3/jsl.js?with=all"></script> 

и синтаксис также отличается и использует экземпляр из nokia.maps.search.Manager, как показано в этом примере here. Убедитесь, что ваши app_code и app_id зарегистрированы правильно, чтобы использовать этот API.

Ваш фрагмент кода представляет собой смесь двух и может быть из более старой версии API.

Смежные вопросы