2016-02-12 1 views
1

Я пытался динамически добавлять точки данных к ЗДЕСЬ карте используя addDataPoints() и addDataPoint() методы (и я до сих пор не понимаю, почему бы вам нужно два разных метода .. .).addDataPoints на здесь карты не работает

Когда я пытаюсь использовать их, я получаю эту ошибку:

Error: this.tb.push is not a function 
[email protected]://js.api.here.com/v3/3.0/mapsjs-core.js line 47 > eval:2:734 
[email protected]://js.api.here.com/v3/3.0/mapsjs-core.js line 47 > eval:24:52 
[email protected]://js.api.here.com/v3/3.0/mapsjs-core.js line 47 > eval:27:209 
[email protected]://localhost:3000/scripts/panel/controller.js:208:3 

populateCluster() является функция, называющий addDataPoints(), определяется следующим образом:

 clusterProvider = new H.clustering.Provider({}); 

     var poisFormattedAsDataPoint = poiManager.pois[category].map(function(poi){ 

      var tmpPoi = new H.clustering.DataPoint(poi.position[0], poi.position[1], null, poi); 
      return tmpPoi; 

     }); 

     clusterProvider.addDataPoints(poisFormattedAsDataPoint); 

     var clusteringLayer = new H.map.layer.ObjectLayer(clusterProvider); 

     map.addLayer(clusteringLayer); 

Если добавить один и тот же массив DataPoints в определение провайдера все работает нормально (я считаю, что данные, которые я использую, хорошо отформатированы), но поскольку я должен динамически добавлять точки, это не вариант.

У кого-нибудь есть рабочий пример этих двух функций?

Большое спасибо.

ответ

1

Я нашел ошибку. Я инициализирую Провайдера пустым объектом и должен быть инициализирован пустым массивом. Так

clusterProvider = new H.clustering.Provider({});

должен быть

clusterProvider = new H.clustering.Provider([]);

Вопрос, она должна иметь возможность инициализировать поставщика с неправильным набором данных? или он должен вернуть ошибку?

0

В моем случае, это не позволяет мне инициализировать поставщика кластера как без clusteringOptions, но когда я представил clusteringOptions работается:

clusterProvider = new H.clustering.Provider([], { 
     clusteringOptions: { 
     eps: 32, 
     minWeight: 2 
     } 
    });