如何重新定位地图中心以适合信息气泡?

时间:2019-04-05 00:09:14

标签: here-api

我可以轻松地使标记居中。但是,它不计入信息气泡的大小。

我想在单击标记时重新放置地图,以使其适合信息气泡。这可以简单地将水平中心和垂直底部对齐。

enter image description here

我尝试操纵标记中心的位置。但是,这也令人惊讶地将标记也移动到了新位置。

1 个答案:

答案 0 :(得分:0)

能否请您尝试在JS片段下方添加内容,因为它允许标记移动,但在拖动地图时限制其移动。

我希望这可以帮助您实现预期的结果。

<script>
function addDraggableMarker(map, behavior){

  var marker = new H.map.Marker({lat:42.35805, lng:-71.0636});

// Ensure that the marker can receive drag events
  marker.draggable = true;
  map.addObject(marker);

  // disable the default draggability of the underlying map
  // when starting to drag a marker object:
  map.addEventListener('dragstart', function(ev) {

    var target = ev.target;
    if (target instanceof H.map.Marker) {
      behavior.disable();
    }},false);


  // re-enable the default draggability of the underlying map
  // when dragging has completed

  map.addEventListener('dragend', function(ev) {
    var target = ev.target;
    if (target instanceof mapsjs.map.Marker) {
      behavior.enable();
    }
  }, false);

  // Listen to the drag event and move the position of the marker
  // as necessary


map.addEventListener('drag', function(ev) {
    var target = ev.target,
        pointer = ev.currentPointer;
    if (target instanceof mapsjs.map.Marker) {
      target.setPosition(map.screenToGeo(pointer.viewportX, pointer.viewportY));
    }
  }, false);
}
  </script>