У меня недавно была похожая проблема с приложением, над которым я работал.
Вы можете извлечь координаты GPS из карты листовки, используя функцию _marker_click, где находится метка карты, которую вы указываете каквывод для оператора рендеринга листовки.
В моем случае вот фрагмент кода, который я использовал для получения координат.В моем случае выходное имя объекта карты было parksMap
, поэтому полный вход, который необходимо учитывать при наблюдении за событием, был parksMap_marker_click
.Этот оператор может быть сохранен в переменной (в моем случае pin
), которая хранит данные координат.Наконец, вам нужно обернуть все это в реактивное выражение, чтобы иметь возможность сохранять каждую координату при нажатии на точку на листовой карте.
# code to load the park card once the click event on a marker is intercepted
observeEvent(input$parksMap_marker_click, {
pin <- input$parksMap_marker_click
#print(Sys.time()) #uncomment to log coords
#print(pin) #uncomment to log coords
selectedPoint <- reactive(parks[parks$Latitude == pin$lat & parks$Longitude == pin$lng,])
leafletProxy("parksMap", data = selectedPoint()) %>% clearPopups() %>%
addPopups(~Longitude,
~Latitude,
popup = ~park_card(selectedPoint()$ParkName, selectedPoint()$ParkCode, selectedPoint()$State, selectedPoint()$Acres, selectedPoint()$Latitude, selectedPoint()$Longitude)
)
})
Полный репозиторий github приложения доступен здесь .