Мне нужно создать многоугольник и пометить метки, которые попадают внутрь многоугольника. Я использую карту листовки и хочу построить ее в блестящем приложении как мою третью вкладку . На первой вкладке есть метки с использованием данных магазина, а на второй - необработанные данные о клиентах с использованием фильтра в качестве идентификатора.
Имя моей вкладки Interactive_Map не подходит, когда я запускаю вставленный ниже код и вижу пустое место, но код работает отлично , Интерфейс пользователя кажется разбитым в верхней панели, которая содержит только вкладку CustomerID.
shinyApp(
ui = fluidPage(
titlePanel("Mapping in R"),
fluidRow(
mainPanel(
div(
tabsetPanel(type = "tabs",
tabsetPanel(type = "tabs",
tabPanel("Interactive_Map",
bootstrapPage(
div(class = "outer",
tags$style(type = "text/css", ".outer {position: fixed; top: 100px; left: 0; right: 0; bottom: 0; overflow: hidden; padding: 0}"),
leafletOutput("map", width = "100%", height = "100%"),
absolutePanel
(id = "controls", class = "panel panel-default", fixed = TRUE,
draggable = TRUE, top = 60, left = "auto", right = 20, bottom = "auto",
width = 330, height = "auto",
))))
),
tabPanel("CustomerID",
selectInput('InputID', 'ID', choices=NULL, selected=NULL),
column(12,
dataTableOutput("out1")),
style='width: 1000px; height: 1000px'),
,
server = function(input, output,session) {
output$map <- renderLeaflet({
leaflet(store) %>%
addProviderTiles("CartoDB.Positron") %>%
addMarkers(lng = ~LONGITUDE, lat = ~LATITUDE,
popup = ~address)})
filtout <- reactive({
a3 <- customer %>% filter(customer_id == input$ID)
return(a3)
})
output$out1 <- DT::renderDataTable(datatable(filtout(), options = list(searching = F, pageLength = 20, lengthMenu = c(5, 10, 15, 20), scrollX = T, autoWidth = TRUE
)))
updateSelectizeInput(session, 'InputID',
choices = customer$customer_id,
server = TRUE)
})
У меня есть два фрейма данных с именем customer , который находится на уровне идентификатора, который будет использоваться для создания многоугольника, и второй. имена фреймов данных как store , которые будут использоваться для маркировки меток внутри многоугольника
У меня более 100 тыс. данных, и я хочу выводить их на уровне идентификатора. Например, один полигон для ID 1 и один для ID2 из данных клиента. Также это должно быть использование некоторого условия в блестящем вводе идентификатора приложения.
Ex рисует многоугольник от клиента и создает этикетки из магазина
Данные клиента
ID Lat Long address
1 18.567928 73.914314 1/2 CA Puj-411014
1 18.551451 73.934784 42/23 DF Puj-411034
2 18.635480 73.774790 12/12 AS Puj-411089
2 18.754618 73.406235 1223/2 PL Puj-411025
Данные магазина
STID LATITUDE LONGITUDE address
1 18.55240 73.80818 1/2 CA Pune-411014
2 18.60611 73.78171 42/23 DF Pune-411034
3 13.03429 77.55883 12/12 AS Pune-411089
4 12.98895 77.50049 1223/2 PL Pune-411025
Когда я запускаю этот пример кода, это дает мне указатель на картах, которые я хочу использовать с данными магазина
leaflet(store) %>%
addProviderTiles("CartoDB.Positron") %>%
addMarkers(lng = ~Longitude, lat = ~Latitude,
popup = ~address)
Этот пример кода дает мне многоугольник на карте с использованием данных данных клиента. Однако прямоугольник работает на комбинации двух входов long и lat, и поэтому я здесь потерян.
leaflet(nui) %>% addTiles() %>%
addRectangles(
lng1=nui$Long, lat1=nui$Lat,
lng2=nui$Long, lat2=nui$Lat,
fillColor = "transparent"
)
Я запутался, как объединить многоугольник из фрейма данных клиента и создать метки в многоугольнике из фрейма данных магазина.