Javascript 缩放到SearchBox中的boundingBox.on使用此处地图和位置选择

Javascript 缩放到SearchBox中的boundingBox.on使用此处地图和位置选择,javascript,zooming,here-api,search-box,Javascript,Zooming,Here Api,Search Box,我正在将诺基亚.places.widget.SearchBox与诺基亚.maps.map.Display一起使用 当用户从结果列表中选择项目时,可以使用SearchBox的onSelect功能执行操作 我需要做的是将地图居中并缩放到选定的位置。我的问题是关于缩放,因为我不知道使用哪个级别 我注意到有些地方有boundingBox(与Display组件的zoomTo功能一起使用)属性,但其他地方没有。我可以使用类别(“行政区”、“街道广场”等),但它并不精确,而且我找不到可能的类别代码列表 有什么

我正在将诺基亚.places.widget.SearchBox与诺基亚.maps.map.Display一起使用

当用户从结果列表中选择项目时,可以使用SearchBox的onSelect功能执行操作

我需要做的是将地图居中并缩放到选定的位置。我的问题是关于缩放,因为我不知道使用哪个级别

我注意到有些地方有boundingBox(与Display组件的zoomTo功能一起使用)属性,但其他地方没有。我可以使用类别(“行政区”、“街道广场”等),但它并不精确,而且我找不到可能的类别代码列表


有什么建议吗?

要在选择建议时让地图移动/缩放到某个位置,您需要实现一个
onResults
处理程序:

var fromSearchBox = new nokia.places.widgets.SearchBox({
    targetNode: "fromSearchBox",
    template: "fromSearchBox",
    map: map,
    onResults: function (data) {
        // Your code goes here //

    }
});
正如您所注意到的,
数据
字段可能包含也可能不包含边界框。这是因为只有少数位置覆盖定义的区域,大多数是地址

对于具有边界框的子集,可以执行以下操作:

if (data.results.items[0].boundingBox){
    map.zoomTo(data.results.items[0].getBoundingBox());
}
对于其余部分,答案将取决于您试图实现的目标,但您可以尝试以下任一方法:

if (data.results.items[0].boundingBox){
    map.zoomTo(data.results.items[0].getBoundingBox());
}
  • 在不改变缩放的情况下移动到地图上的位置。(即,由用户决定)

  • 移动到指定的边界框,以便在指定的边界处创建点对象 指定位置

    var obj = new nokia.maps.map.StandardMarker(startPoint);
    map.zoomTo(obj.getBoundingBox());   
    
或者:
map.zoomTo(nokia.maps.geo.BoundingBox.coverAll([startPoint])

  • 定义围绕点位置的边界框,并缩放到该边界框

    startPoint =data.results.items[0].position;
    bottomLeft = new nokia.maps.geo.Coordinate(startPoint.latitude - 0.1,
             startPoint.longitude + 0.1);
    topRight = new nokia.maps.geo.Coordinate(startPoint.latitude + 0.1,
             startPoint.longitude - 0.1);
    map.zoomTo(nokia.maps.geo.BoundingBox.coverAll([topRight, bottomLeft]));
    

此外,还可以使用一个附加参数,因此如果您使用
map.zoomTo(BoundingBox,true)
您还将在屏幕上保留地图的当前中心,这可能会为用户提供更多上下文。

我想我将使用coverAll static方法,谢谢@JasonFox!