我正在尝试对诺基亚进行反向地理编码调用,这里映射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);
}
当我拨打电话时,我收到以下错误:
“未捕获的类型错误:无法调用未定义的方法”搜索“
我对javascript没有那么有经验,也许这是一个愚蠢的问题,但是我被困在这里很多时间......有谁知道我的错误在哪里?
答案 0 :(得分: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);
}
第二种可能性是检查您是否正在使用API的最新 2.5.3版本,并在必要时使用额外的with
参数。
适用于JavaScript的Maps API
如果您使用的是公开 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
适用于JavaScript的Enterprise Maps API
如果您使用的是 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。