Javascript 缩放到SearchBox中的boundingBox.on使用此处地图和位置选择
我正在将诺基亚.places.widget.SearchBox与诺基亚.maps.map.Display一起使用 当用户从结果列表中选择项目时,可以使用SearchBox的onSelect功能执行操作 我需要做的是将地图居中并缩放到选定的位置。我的问题是关于缩放,因为我不知道使用哪个级别 我注意到有些地方有boundingBox(与Display组件的zoomTo功能一起使用)属性,但其他地方没有。我可以使用类别(“行政区”、“街道广场”等),但它并不精确,而且我找不到可能的类别代码列表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功能一起使用)属性,但其他地方没有。我可以使用类别(“行政区”、“街道广场”等),但它并不精确,而且我找不到可能的类别代码列表 有什么
有什么建议吗?要在选择建议时让地图移动/缩放到某个位置,您需要实现一个
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!