这里将自定义标记映射到自定义' center'

时间:2015-01-07 10:45:33

标签: javascript here-api

我正在将自定义标记添加到Here V3地图中,但默认情况下,它是连接到标记的cooredinates的左上角像素,我试图精确定位。

The pin

有没有办法告诉DomMarker与所需位置相关的精确像素?

var outerElement = document.createElement('div'),
innerElement = document.createElement('div');

innerElement.innerHTML = '<img src="/Images/' + getMarkerImage(donation) + '" />';
outerElement.appendChild(innerElement);

var domIcon = new H.map.DomIcon(outerElement, {});
var domMarker = new H.map.DomMarker(
    { lat: donation.Lat, lng: donation.Long },
    { icon: domIconn}
);

map.addObject(domMarker);

2 个答案:

答案 0 :(得分:1)

我不确定它的最佳做法,但这似乎有用......

innerElement.innerHTML = '<img src="/Images/' + getMarkerImage(donation) + '" style="margin-left:-28px; margin-top:-34px;" />';

答案 1 :(得分:0)

如果您使用的是 Here Maps 的最新 JavaScript SDK,您可以通过 anchor 属性设置自定义标记的位置(默认位置设置为 bottom-center)。

假设您的自定义图标的大小为 markerWidth x markerHeight,并且您希望将其居中。然后,您需要在创建图标时创建发送 H.map.Icon.Options 属性的标记。请参见以下示例:

const centeredMarker = new H.map.Marker(
      {
        lat: latitude,
        lng: longitude,
      },
      {
        icon: new H.map.Icon(imageElement, {
          anchor: new H.math.Point(markerWidth / 2, markerHeight / 2),
          crossOrigin: false,
        }),
      }
    );