我正在将自定义标记添加到Here V3地图中,但默认情况下,它是连接到标记的cooredinates的左上角像素,我试图精确定位。
有没有办法告诉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);
答案 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,
}),
}
);