Reputation: 690
I'm using the leaflet library in R, which is a wrapper to the leaflet.js library. I'm wondering if it is possible to add a query or search button using the R interface (or some hack to the underlying code)? There are search plug-ins to the javascript library here http://leafletjs.com/plugins.html#search--popups, but I can't figure out how to get them to work with the javascript that comes out from the R library.
As a minimal example, I want to add to the following the ability to search for "location 1" in the following map, and have it display the popup:
library(leaflet)
df = read.csv(textConnection(
'Name, Lat, Long
<b>location 1</b>,42.3401, -71.0589
<b>location 2</b>,42.3501, -71.0689'))
leaflet(df) %>%
addTiles() %>%
setView(lng=-71.0589,lat=42.3301, zoom=12) %>%
addMarkers(~Long, ~Lat, popup = ~Name
)
Upvotes: 4
Views: 6039
Reputation: 172
Check out the inlmisc
package and AddSearchButton
df = read.csv(textConnection(
'Name, Lat, Long
<b>location 1</b>,42.3401, -71.0589
<b>location 2</b>,42.3501, -71.0689'))
map=leaflet(df) %>%
addTiles() %>%
setView(lng=-71.0589,lat=42.3301, zoom=12) %>%
addMarkers(~Long, ~Lat, popup = ~Name, group="marker")
map=inlmisc::AddSearchButton(map, group = "marker", zoom = 15,
textPlaceholder = "Search here")
Upvotes: 2
Reputation: 690
A complete working example of adding a search bar using the leafletplugins package is here:
devtools::install_github('byzheng/leaflet')
library(leaflet)
library(leafletplugins)
df = read.csv(textConnection(
'Name, Lat, Long, Name2
<b>location 1</b>,42.3401, -71.0589, Loc 1
<b>location 2</b>,42.3501, -71.0689, Loc 2'))
leaflet(df) %>%
addTiles() %>%
setView(lng=-71.0589,lat=42.3301, zoom=12) %>%
addMarkers(~Long, ~Lat, popup = ~Name, group = 'marker', label = ~Name2) %>%
addSearchMarker('marker', position='topleft', propertyName = 'label')
Upvotes: 5
Reputation: 12107
It appears that there is a search plugin for the R leaflet package: https://github.com/byzheng/leafletplugins
Upvotes: 3