我用Here maps JS Api 3.0生成了一张地图。我想将缩放限制为最小/最大值并平移到给定的矩形。有没有办法做到这一点? 例如:
map.setMinZoom(4);
map.setMaxZoom(14);
map.setPanRestriction(rectangle);
答案 0 :(得分:0)
我猜你正试图将视口限制在你现在拥有图像叠加的地方......
最简单的方法是监听视图模型和视口更新,类似于另一个示例: Custom map overlay heremaps js api v3
现在,您可以查看地图的中心坐标,看看它是否在您希望显示的边界内。如果不是,请将其设置为边界内。这些方面的东西可能适合你:
var bounds = new H.geo.Rect(45, -45, -45, 45);
map.getViewModel().addEventListener('sync', function() {
var center = map.getCenter(),
adjustLat,
adjustLng;
if (!bounds.containsPoint(center)) {
if (center.lat > bounds.getTop()) {
adjustLat = bounds.getTop();
} else if (center.lat < bounds.getBottom()) {
adjustLat = bounds.getBottom();
} else {
adjustLat = center.lat;
}
if (center.lng < bounds.getLeft()) {
adjustLng = bounds.getLeft();
} else if (center.lng > bounds.getRight()) {
adjustLng = bounds.getRight();
} else {
adjustLng = center.lng;
}
map.setCenter({
lat: adjustLat,
lng: adjustLng
});
}
});
//Debug code to visualize where your restriction is
map.addObject(new H.map.Rect(bounds));
&#13;