有什么好的库可以根据长和纬度进行搜索吗?

问题描述 投票:0回答:4

我有一个要求,我有一些城市的经度和纬度。

Bangalore - 12.9539974,77.6309395
Chennai - 13.0473748,79.9288083
Delhi - 28.6921165,76.8079346
Mumbai - 19.0821978,72.741098

我创建了一个输入框,其中列出了一些城市

enter image description here

根据此输入,我需要放大这些城市。

我该怎么做?

r shiny r-leaflet
4个回答
0
投票

您可以通过传单来做到这一点

library(dplyr)
library(shiny)
library(leaflet)

data_cities = data.frame(
  city = c('Bangalore', 'Chennai', 'Delhi', 'Mumbai'),
  lat = c(12.9539974, 13.0473748, 28.6921165, 19.0821978),
  lng = c(77.6309395, 79.9288083, 76.8079346, 72.741098)
)

ui <- fluidPage(
  selectInput("select_city", label = "Select city", choices = data_cities$city),
  leafletOutput("map")
)

server <- function(input, output) {
  # Initiate the map
  output$map <- renderLeaflet({
    leaflet() %>% 
      addTiles(options = providerTileOptions(noWrap = TRUE)) 
  })
  
  #Zoom when select city
  observeEvent(input$select_city, {
    selected_city_data <- data_cities %>%
      filter(city == input$select_city)
    
    leafletProxy("map") %>%
      setView(lng = selected_city_data$lng, lat = selected_city_data$lat, zoom=8) 
    
  })
}
shinyApp(ui = ui, server = server)

0
投票

嗯,您可以使用一个简单的 API 来确定选择的位置。 网上有几个可用的 API。 我建议使用免费的 API,例如 IPAPI。 您所需要做的就是浏览他们官方网站上的文档,以便近距离了解 API 的工作原理。


0
投票

在这种情况下,您可以使用包“ggmap”及其内部名为 qmap() 的函数。 或者您也可以检查名为“maps”的包。安装此包并使用map.cities()函数。

还有一个与之相同的库,称为 rMaps。这个包可以在 github 上找到。


0
投票

我认为有很多方法可以实现这一点,也许它应该以某种方式起作用。无论如何,阅读文档是有必要的。

HTML:   <div id="buttons"></div>

JS:
var Balganore = L.map('Bangalore').setView([12.9539974,77.6309395], 8);

Jquery:
 $('#buttons').append(
        $('<div>').text('City choose:'),
        $('<label>').append(
            $('<input>').prop({'type':'checkbox', 'checked':true}).click(function(){
                $(Bangalore).toggle();
    
            }),
            'Bangalore'
        ),)
   
© www.soinside.com 2019 - 2024. All rights reserved.