我正在尝试对诺基亚进行反向地理编码呼叫。
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_code
和app_id
是否正确注册以使用此API。
您的代码段似乎是两者的混合物,可能来自API的较旧版本。