#r #leaflet #r-leaflet
#r #листовка #r-листовка
Вопрос:
Я настроил карту местных избирательных участков и хочу иметь возможность поиска номера участка. Цель состоит в том, чтобы пользователь мог ввести номер участка в поле поиска, щелкнуть правильный участок, и карта увеличится до этого участка.
Вместо этого, когда пользователь выполняет поиск по номеру участка, Листовка возвращает полное содержимое информации о метке наведения курсора мыши на участок, и когда пользователь нажимает на этот результат, на карте отображается сообщение об ошибке «Местоположение не найдено».
Приведенный ниже код, репозиторий Github с исходным шейп-файлом и файлом данных CSV здесь.
library(rgdal)
library(leaflet)
library(leaflet.extras)
library(htmltools)
library(tigris)
library(htmlwidgets)
library(dplyr)
m16 <- geo_join(
spatial_data = readOGR(
dsn = "Precinct_2016/PRECINCT_REDISTRICTING_region.shp",
layer = "PRECINCT_REDISTRICTING_region"
),
data_frame = read.csv("2016 results by precinct.csv"),
by_sp = "PRECINCT",
by_df = "Precinct",
how = "inner"
)
label16 <- sprintf(
fmt = "<strong>Precinct %s</strong><br>
Hillary Clinton: %g (%g%%) <br>
Donald Trump: %g (%g%%) <br>",
m16$Precinct, m16$Hillary.Rodham.Clinton, m16$Percent.Clinton, m16$Donald.J..Trump, m16$Percent.Trump
) %>% lapply(htmltools::HTML)
leaflet() %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addPolygons(
data = m16,
group = "2016",
label = label16
) %>%
addSearchFeatures(
targetGroups = "2016",
options = searchFeaturesOptions(
textPlaceholder = "Search precinct"
)
)