【问题标题】:How to update marker position from Here Maps API javascript如何从 Here Maps API javascript 更新标记位置
【发布时间】:2018-08-08 12:03:29
【问题描述】:

所以我有一个组,我想从这里的地图更新这个组的一个标记位置。

function addMarkerToGroup(group, coordinate, html) {
  var marker = new H.map.Marker(coordinate);
  // add custom data to the marker
  marker.setData(html);
  group.addObject(marker);
}


function addInfoBubble(map) {
  var group = new H.map.Group();

  map.addObject(group);

  // add 'tap' event listener, that opens info bubble, to the group
  group.addEventListener('tap', function (evt) {
    // event target is the marker itself, group is a parent event target
    // for all objects that it contains
    var bubble =  new H.ui.InfoBubble(evt.target.getPosition(), {
      // read custom data
      content: evt.target.getData()
    });
    // show info bubble
    ui.addBubble(bubble);
  }, false);

  addMarkerToGroup(group, {lat:53.439, lng:-2.221},
    '<div><a href=\'http://www.mcfc.co.uk\' >Manchester City</a>' +
    '</div><div >City of Manchester Stadium<br>Capacity: 48,000</div>');

  addMarkerToGroup(group, {lat:53.430, lng:-2.961},
    '<div ><a href=\'http://www.liverpoolfc.tv\' >Liverpool</a>' +
    '</div><div >Anfield<br>Capacity: 45,362</div>');

} 

但是我怎样才能更新,这里的 api 有一些手表或功能,比如 updateMarkerPosition?

谢谢。

【问题讨论】:

    标签: javascript here-api


    【解决方案1】:

    您可以简单地调用标记上的 setPosition() 函数来传入一个新位置,如下所示:

    marker.setPosition( {lat:50.430, lng:-2.961} );
    

    【讨论】:

    • 谢谢,但是如何在我的组内使用 setPosition?因为我使用这个函数 addMarkerToGroup 在地图上显示我的标记。
    【解决方案2】:

    您希望它如何更新?考虑数据库或地理定位?或者您只是希望能够将标记拖到您想要的位置?

    您可以做的是输入 2 个输入类型,一个 lat 一个 long id。并使用 document.getElementById() 函数,因此任何人都可以输入坐标,它会更新标记位置。但是,如果您想使用该地址,您的问题将与Using Google maps API v3 how do I get LatLng with a given address? 重复

    【讨论】:

    • 我想更新标记位置,所以我有一个标记设置一个位置,我想在地图上更新这个位置,像这样,我收到一个新的经纬度坐标,我想更新地图上的位置。我不想拖动标记。
    • 谢谢,但我有两个问题,首先我将通过 Rest API 接收坐标数据,其次我使用 Here Maps API javascript
    【解决方案3】:

    setPosition 不适用于矢量地图,但确实如此。

    marker.setGeography({lat:50.430, lng:-2.961});
    map.setCenter({lat:50.430, lng:-2.961});
    

    【讨论】:

    • 请在您的回答中描述问题是什么,以及这个 sn-p 将如何解决它,以帮助其他人理解这个答案
    • setPosition 对矢量图不起作用,用它,不要用它...
    【解决方案4】:

    使用 setGeometry 方法。

    marker.setGeometry({lat:53.439, lng:-2.221});
    

    【讨论】:

      【解决方案5】:

      对于 Here Maps JS 版本 3 (2022):

      marker.setGeometry({ lat: latitude, lng: longitude });
      map.setCenter({ lat: latitude, lng: longitude });
      

      【讨论】:

        猜你喜欢
        • 2017-06-12
        • 1970-01-01
        • 1970-01-01
        • 2012-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-09
        相关资源
        最近更新 更多