我正在开发基于Here Maps的网络应用程序。
我想将其搜索建议功能实施到<input type="text" />
,这是计划路线的输入。
我想让搜索建议出现在jQuery的keyup event
上,就像谷歌地图一样。
到目前为止,这是我的代码:
HTML
<input type="text" name="waypoints[]" id="waypoint-1" class="waypoint" />
基本的jQuery keyup事件处理程序
$('.waypoint').on('keyup', function () {
});
以下是我应该使用的代码,可在documentation和api explorer
中找到var searchBox = new nokia.places.widgets.SearchBox ({
targetNode: 'waypoint-1',
searchCenter: function () {
return {
latitude: 52.516274,
longitude: 13.377678
}
},
onResults: function (data) {
console.log(data.results.items);
}
});
每次用户发布密钥时,如何显示搜索建议?我应该在哪里将SearchBox的代码放在我的事件处理程序中以响应该事件?什么是searchCenter
参数?
答案 0 :(得分:1)
JavaScript SearchBox
可以充当一体化Widget,您无需添加额外的事件来处理按键操作。您可以按照显示的方式对其进行初始化,但是您需要确保targetNode
与DOM中已存在的id
的{{1}}匹配。例如,如果包含以下内容,则可以使用<DIV>
targetNode = waypoint1
可以在HERE Maps Community Examples中找到工作路由示例。
<div id="waypoint1" class="main-search">
<span class ="caption">Start:</span>
<div module="SearchBox">
<input rel="searchbox-input" class="search-box-bckgrnd" type="text" />
<div rel="searchbox-list" class="search-list"></div>
</div>
</div>
有助于定义搜索的位置上下文 - 在RESTful Places Documentation中有更好的描述。具体来说,它映射到searchCenter
参数。另一种方法是将窗口小部件附加到关联的地图,该地图将提供at
参数。请注意,在输入至少三个字符后,Widget才会开始提供建议。
当然可以使用JQuery从头开始构建自己的Widget - 只需使用keyup,使用suggest endpoint创建REST请求,并将生成的String数组解析为您选择的下拉列表。 / p>