Я хотел бы изменить поведение функции группировки листовок для суммирования при группировке и сохранить круглую форму красного пузыря в зависимости от значения.
Мои данные содержат столбцы:
lon lat sales_ytd
Я хотел бы кластеризовать данные в зависимости от масштаба с использованием clusterOption s = markerClusterOptions (iconCreateFunction = JS (sum.formula)
1010 * Вот моя функция. Я не знаю JS, но я пробовал многочисленные примеры, и функция работает путем суммирования сгруппированных значений.
sum.formula = JS("function (cluster) {
var markers = cluster.getAllChildMarkers();
var sum = 0;
for (i = 0; i < markers.length; i++) {
sum += Number(markers[i].options.mag);
// sum += 1;
}
var size = sum/30000;
return new L.DivIcon({ html: sum , iconSize: L.point(size, size)});
}")
Очевидно, L.DivIcon () возвращает квадрат ... есть ли способ вернуть ему круглый красный пузырь?
Тогда я пытаюсь использовать его в блестящем приложении (код R).
renderLeaflet({
leaflet(df_summary_towns()) %>%
addTiles() %>%
addCircleMarkers(
radius = ~sales_ytd/30000,
color = 'red',
stroke = FALSE,
fillOpacity = 0.5,
options = markerOptions(mag = ~ sales_ytd),
clusterOptions = markerClusterOptions(iconCreateFunction=JS(sum.formula))
) %>%
addLabelOnlyMarkers(
~lon, ~lat,
options = markerOptions(mag = ~ sales_ytd),
label = ~scales::number(sales_ytd),
labelOptions = labelOptions(noHide = T, direction = 'center', textOnly = T),
clusterOptions = markerClusterOptions(iconCreateFunction=JS(sum.formula)))
})
Группировка несколько работает, значения суммируются для кластеризованных данных, и, если я щелкну по ним, листовка увеличится и покажет отдельные точки (красивые красные кружки со значениями внутри). Но сгруппированные маркеры - это белые квадраты, а не круглые красные круги, как отдельные точки. Также я не знаю, как добиться согласованного форматирования для чисел. В R это просто, но определение сгруппированных маркеров теперь в JS. Как этого достичь: согласованная форма, цвет и размер, зависящие от значения как в несгруппированных, так и сгруппированных маркерах, и согласованные числовые форматы ? Можно также увидеть Я попытался нормализовать размер в R, и я разделил size / 1000 на JS - я не знал, как передать сумму столбца data.frame в JS.