当dommarker出现在地图上时如何拦截? 我注意到如果屏幕上看不到标记,甚至没有它的html代码,我必须更改几种样式,我需要知道它们何时重新出现
我使用JavaScript API 3.0
答案 0 :(得分:0)
这是一个隐藏得很好的功能,在此处记录:http://developer.here.com/javascript-apis/documentation/v3/maps/topics_api_nlp/h-map-domicon.html#h-map-domicon
我们的想法是将onAttach(和/或onDetach)回调添加到DOM图标,以便在标记使用该图标进入视口时收到通知。请注意,因为您创建的DOM图标在被放入标记之前始终被克隆(因为您可以在多个标记上使用相同的DOM图标)。该链接应该已经显示了它是如何完成的,但我在下面添加了一个代码段。
//Initialization business
var platform = new H.service.Platform({
app_id: 'DemoAppId01082013GAL',
app_code: 'AJKnXv84fjrb0KIHawS0Tg',
useCIT: true
});
var defaultLayers = platform.createDefaultLayers();
var map = new H.Map(document.getElementById('mapp'), defaultLayers.normal.map, {
center: {
lat: 52.3,
lng: 13.8
},
zoom: 10
});
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
//The onAttach function receives the DomElement, the icon object and the
//marker. The element can now be styled...
var onAttach = function(element, icon, marker) {
console.log("marker entering", element, icon, marker);
};
//Create a DomElement to use as marker icon...
var domIconEl = document.createElement("div");
domIconEl.style.width = "32px";
domIconEl.style.height = "32px";
domIconEl.style.marginLeft = "-16px";
domIconEl.style.marginTop = "-16px";
domIconEl.style.borderRadius = "20px";
domIconEl.style.background = "#006";
//Create icon with icon element adding onAttach to the options
var domIcon = new H.map.DomIcon(domIconEl, {
onAttach: onAttach
});
//Creare marker and add to map
var domMarker = new H.map.DomMarker({
lat: 52.3,
lng: 13.8
}, {
icon: domIcon
});
map.addObject(domMarker);