Клуб API Карт

Множество точек в виде диаграммы

grom-mobile
8 августа, 14:21

Добрый день.

Подскажите, можно ли добавить множество точек в виде диаграммы через данные json. Если да, то где можно посмотреть структуру пакета.

8 комментариев
Подписаться на комментарии к посту
Формат опций макета совпадает с кластеризатором.
https://tech.yandex.ru/maps/jsbox/2.1/clusterer_pie_chart



В json у каждой Feature надо указать опцию iconColor


{
  "type": "Feature",
  "geometry": {...},
  "properties": {...},
  "options": {
     "iconColor": "#F88D00"
  }
}
dimik,
Немного не то, что я хотел спросить. На примере:
        myPieChart = new ymaps.Placemark([50,50], {
data: [

{weight: 8, color: '#FF0000'},
{weight: 6, color: '#00FF00'},
{weight: 4, color: '#FFFF00'}
],
hintContent: "Диаграмма"
}, {
iconLayout: 'default#pieChart'

});


Могу ли я задать данные (позицию, размер сектора, цвет сектора и т.д.) из json, а потом добавить это множество точек-диаграмм на карту через objectManager
grom-mobile,
да, можете и так
dimik,
Никак не получается, помогите пожалуйста.


так выглядит json:


{"type":"FeatureCollection","features":[
{"type":"Feature","id":0,"geometry":{"type":"Point","coordinates":[50,50]}, "data":[{"weight":8},{"color": "#0E4779"}, {"weight":6},{"color": "#1E98FF"}, {"weight":4},{"color": "#82CDFF"}],"options":{"iconLayout": "default#pieChart"}}
}]}


так добавляю в скрипте на карту


$.ajax({url: "http://мой IP/DocSwap/data.json", dataType: "json", type : "GET"}).done(function(data){objectManager.add(data);});


в итоге карта без точек. Ошибка где то в Json, т.к. простые точки добавляет без проблем. Json валидатором прошел.

grom-mobile,
Ну там же простая аналогия с геобъектом.
У конструктора метки:
первый параметр – координаты метки (поле geometry.coordinates в JSON)
второй параметр – properties (поле properties в JSON)
третий параметр – options (поле options в JSON)


Поле data в примере во 2-м параметре, значит его надо класть в properties в JSON


Если у вас все метки в JSON - диаграммы, макет лучше перенести в опции конструктора ObjectManager


https://jsfiddle.net/5jj55vn8/


Обновлено 9 августа, 12:10
dimik,
Спасибо ! Разобрался. Подскажите, а кластеризовать можно эти точки, показывая не количество точек, а суммы параметров диаграммы ?
grom-mobile,
Интересная задача. Для этого нужно написать свой макет иконки кластера, в котором посчитать эти суммы. Иконку кластера также можно сделать диаграммой, отображающей цветами аггрегацию суммарных весов по входящим в кластер меткам.
https://jsfiddle.net/s6c0qa51/