限制平移和缩放Here Maps 3.0

时间:2014-10-27 09:09:28

标签: here-api

我用Here maps JS Api 3.0生成了一张地图。我想将缩放限制为最小/最大值并平移到给定的矩形。有没有办法做到这一点? 例如:

map.setMinZoom(4);
map.setMaxZoom(14);
map.setPanRestriction(rectangle);

1 个答案:

答案 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;
&#13;
&#13;