知道dommarkers何时出现

时间:2014-11-10 12:21:33

标签: here-api

当dommarker出现在地图上时如何拦截? 我注意到如果屏幕上看不到标记,甚至没有它的html代码,我必须更改几种样式,我需要知道它们何时重新出现

我使用JavaScript API 3.0

1 个答案:

答案 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);