Медленное обновление HereMaps DomIcon при изменении местоположения (широта / долгота), перерисовка - PullRequest
0 голосов
/ 18 октября 2019

Использование renderToStaticMarkup для рендеринга html в DomIcon в HereMaps. Это работает и быстро, когда не так много маркеров и обновлений. Тем не менее, 100 маркеров, часто обновляемых и повторных, вызывают медленное открытие страницы. Это даже замедляет рендеринг карты.

Я изучил рекомендации по повторному использованию DomIcon . Я также изучал кластеризацию - но не уверен, как будет работать обновление. Является ли кластеризация единственным способом пойти дальше? Любопытно, есть ли другие лучшие практики для производительности

1 Ответ

1 голос
/ 22 октября 2019

Кластеризация решает потенциальные проблемы с производительностью, однако H.map.Group используется для связывания маркеров вместе, а метод group.getBounds () - для нахождения минимального ограничивающего прямоугольника, в котором хранится все содержимое группы. Затем map.viewBounds () можно обновить.

function addMarkersAndSetViewBounds() {
  // create map objects
  var toronto = new H.map.Marker({lat:43.7,  lng:-79.4}),
      boston = new H.map.Marker({lat:42.35805, lng:-71.0636}),
      washington = new H.map.Marker({lat:38.8951, lng:-77.0366}),
      group = new H.map.Group();

  // add markers to the group
  group.addObjects([toronto, boston, washington]);
  map.addObject(group);

  // get geo bounding box for the group and set it to the map
  map.getViewModel().setLookAtData({
    bounds: group.getBoundingBox()
  });
}

forEachDataPoint (callback)

Этот метод вызывает указанный обратный вызов для каждой точки данных в данном кластере, который может работать для обновленияТочки данных.

Алгоритм кластеризации группирует точки данных путем объединения двух или более точек, расположенных близко друг к другу на экране, в одну точку кластеризации. Все остальные (не свернутые) точки все еще видны на карте как точки шума.

Если это действительно подходит для варианта использования, перейдите к кластеризации. Это помогает поднять проблему производительности. за более подробной информацией обращайтесь: developer.here.com/documentation/maps/topics/clustering.html

...