诺基亚在这里地图搜索管理器



我正在尝试对诺基亚进行反向地理编码呼叫。

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中没有那么经验,也许这是一个愚蠢的问题,但是我被困在这里很多时间...有人知道我的错误在哪里吗?

您最有可能遇到的问题是,您要设置的可变 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);
}

第二可能是检查您是否正在使用最新的API版本,并在必要时使用附加的with参数。

映射JavaScript的API

如果您使用的是 public 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>

使用 static nokia.places.search.manager搜索,如本示例所示

企业映射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实例。检查您的app_codeapp_id是否正确注册以使用此API。

您的代码段似乎是两者的混合物,可能来自API的较旧版本。

最新更新