Листовка многоугольная с блестками и надписями - PullRequest
0 голосов
/ 12 января 2020

Мне нужно создать многоугольник и пометить метки, которые попадают внутрь многоугольника. Я использую карту листовки и хочу построить ее в блестящем приложении как мою третью вкладку . На первой вкладке есть метки с использованием данных магазина, а на второй - необработанные данные о клиентах с использованием фильтра в качестве идентификатора.

Имя моей вкладки 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"
  )

Я запутался, как объединить многоугольник из фрейма данных клиента и создать метки в многоугольнике из фрейма данных магазина.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...