2014-02-10 3 views
1

Привет я пытаюсь узнать, как использовать карту листовку на блестящей, я использовал этот пример:земля severals маркеры на листовке карте

http://glimmer.rstudio.com/jcheng/leaflet-demo/

Вот репозиторий кода:

https://github.com/jcheng5/leaflet-shiny/blob/master/inst/example/

Я хочу заменить круги маркерами, заменив функцию addCircle на addMarker.

Фактическая функция: (строка 98 из Server.R)

map$addCircle(
    cities$Lat, 
    cities$Long, 
    sqrt(cities[[popCol()]]) * radiusFactor/max(5, input$map_zoom)^2, 
    row.names(cities), 
    list(
    weight=1.2, 
    fill=TRUE, 
    color='#4A9' 
) 
) 

И я просто заменил его:

map$addMarker(
    cities$Lat, 
    cities$Long, 
    row.names(cities) 
) 

Но это только сюжет маркер на первый город кадр данных. И после того, как вы перемещаетесь и масштабируетесь случайно на карте, могут появиться другие маркеры ...

Почему addCircle рисует круг для каждого города, а addMarker ведет себя «случайно»?

Как я могу нарисовать маркер отдельно на участке?
Петля ниже, но в идеале я не хочу, если это возможно, петли вручную.

for(i in 1:nrow(cities)){ 
    map$addMarker(
     cities$Lat[i], 
     cities$Long[i], 
     i 
    ) 
} 

Спасибо

ответ

2

У меня была такая же проблема, это происходит потому, что вы удалите радиус. Глядя на код функции createLeafletMap, мы можем видеть, что addCircle нужны эти аргументы:

addCircle(lat, lng, radius, layerId = NULL, options=list(), eachOptions=list()) 

это действительно нужно радиус. для решения вашей проблемы просто напишите:

map$addMarker(
    cities$Lat, 
    cities$Long, 
    100, 
    row.names(cities) 
) 
Смежные вопросы