关键字的搜索建议

时间:2014-03-04 10:04:09

标签: javascript jquery map here-api

我正在开发基于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 () {

});

以下是我应该使用的代码,可在documentationapi 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参数?

1 个答案:

答案 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>