Here api 诺基亚地图搜索管理器

Here api 诺基亚地图搜索管理器,here-api,Here Api,我正在尝试对诺基亚地图api进行反向地理编码: var searchManager = new nokia.maps.search.Manager(); var searchCallback = function (observedManager, key, value) { if (value == "finished" && observedManager.locations[0]) { alert(observedM

我正在尝试对诺基亚地图api进行反向地理编码:

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);
}
当我打电话时,我得到以下错误:

未捕获类型错误:无法调用未定义的方法“search”


我对javascript不是很有经验,也许这是一个愚蠢的问题,但我在这里被困了很长时间……有人知道我的错误在哪里吗?

您遇到的最可能的问题是您正在设置的变量
searchManager
不在函数
ricerca()的范围内
-诚然,您粘贴的代码片段不应该是这种情况,但如果您在单独的函数中定义
searchManager
,它可能没有设置全局范围

i、 e.如果您有:

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,如果需要,还可以使用带有参数的附加

映射JavaScript的API

如果您使用的是publicJavaScript API,则应使用以下
标记加载库:

<script type="text/javascript" charset="UTF-8" src="http://js.api.here.com/se/2.5.3/jsl.js?with=all"></script>
语法也不同,使用了
nokia.maps.search.Manager
实例。检查您的
app\u code
app\u id
是否正确注册以使用此API

您的代码片段似乎是这两种代码的混合体,可能来自较旧版本的API

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