This is a feature rich alternative to the addGeoJSON
& addTopoJSON
with options to map feature properties to labels, popups, colors, markers etc.
Usage
addGeoJSONv2(
map,
geojson,
layerId = NULL,
group = NULL,
markerType = NULL,
markerIcons = NULL,
markerIconProperty = NULL,
markerOptions = leaflet::markerOptions(),
clusterOptions = NULL,
clusterId = NULL,
labelProperty = NULL,
labelOptions = leaflet::labelOptions(),
popupProperty = NULL,
popupOptions = leaflet::popupOptions(),
stroke = TRUE,
color = "#03F",
weight = 5,
opacity = 0.5,
fill = TRUE,
fillColor = color,
fillOpacity = 0.2,
dashArray = NULL,
smoothFactor = 1,
noClip = FALSE,
pathOptions = leaflet::pathOptions(),
highlightOptions = NULL
)
legendOptions(
title = NULL,
position = c("bottomleft", "bottomright", "topleft", "topright"),
locale = "en-US",
numberFormatOptions = list(style = "decimal", maximumFractionDigits = 2)
)
addGeoJSONChoropleth(
map,
geojson,
layerId = NULL,
group = NULL,
valueProperty,
labelProperty = NULL,
labelOptions = leaflet::labelOptions(),
popupProperty = NULL,
popupOptions = leaflet::popupOptions(),
scale = c("white", "red"),
steps = 5,
mode = "q",
channelMode = c("rgb", "lab", "hsl", "lch"),
padding = NULL,
correctLightness = FALSE,
bezierInterpolate = FALSE,
colors = NULL,
stroke = TRUE,
color = "#03F",
weight = 1,
opacity = 0.5,
fillOpacity = 0.2,
dashArray = NULL,
smoothFactor = 1,
noClip = FALSE,
pathOptions = leaflet::pathOptions(),
highlightOptions = NULL,
legendOptions = NULL
)
addKML(
map,
kml,
layerId = NULL,
group = NULL,
markerType = NULL,
markerIcons = NULL,
markerIconProperty = NULL,
markerOptions = leaflet::markerOptions(),
clusterOptions = NULL,
clusterId = NULL,
labelProperty = NULL,
labelOptions = leaflet::labelOptions(),
popupProperty = NULL,
popupOptions = leaflet::popupOptions(),
stroke = TRUE,
color = "#03F",
weight = 5,
opacity = 0.5,
fill = TRUE,
fillColor = color,
fillOpacity = 0.2,
dashArray = NULL,
smoothFactor = 1,
noClip = FALSE,
pathOptions = leaflet::pathOptions(),
highlightOptions = NULL
)
addKMLChoropleth(
map,
kml,
layerId = NULL,
group = NULL,
valueProperty,
labelProperty = NULL,
labelOptions = leaflet::labelOptions(),
popupProperty = NULL,
popupOptions = leaflet::popupOptions(),
scale = c("white", "red"),
steps = 5,
mode = "q",
channelMode = c("rgb", "lab", "hsl", "lch"),
padding = NULL,
correctLightness = FALSE,
bezierInterpolate = FALSE,
colors = NULL,
stroke = TRUE,
color = "#03F",
weight = 1,
opacity = 0.5,
fillOpacity = 0.2,
dashArray = NULL,
smoothFactor = 1,
noClip = FALSE,
pathOptions = leaflet::pathOptions(),
highlightOptions = NULL,
legendOptions = NULL
)
csvParserOptions(latfield, lonfield, delimiter = ",")
addCSV(
map,
csv,
csvParserOptions,
layerId = NULL,
group = NULL,
markerType = NULL,
markerIcons = NULL,
markerIconProperty = NULL,
markerOptions = leaflet::markerOptions(),
clusterOptions = NULL,
clusterId = NULL,
labelProperty = NULL,
labelOptions = leaflet::labelOptions(),
popupProperty = NULL,
popupOptions = leaflet::popupOptions(),
stroke = TRUE,
color = "#03F",
weight = 5,
opacity = 0.5,
fill = TRUE,
fillColor = color,
fillOpacity = 0.2,
dashArray = NULL,
smoothFactor = 1,
noClip = FALSE,
pathOptions = leaflet::pathOptions(),
highlightOptions = NULL
)
addGPX(
map,
gpx,
layerId = NULL,
group = NULL,
markerType = NULL,
markerIcons = NULL,
markerIconProperty = NULL,
markerOptions = leaflet::markerOptions(),
clusterOptions = NULL,
clusterId = NULL,
labelProperty = NULL,
labelOptions = leaflet::labelOptions(),
popupProperty = NULL,
popupOptions = leaflet::popupOptions(),
stroke = TRUE,
color = "#03F",
weight = 5,
opacity = 0.5,
fill = TRUE,
fillColor = color,
fillOpacity = 0.2,
dashArray = NULL,
smoothFactor = 1,
noClip = FALSE,
pathOptions = leaflet::pathOptions(),
highlightOptions = NULL
)
Arguments
- map
a map widget object created from
leaflet()
- geojson
a GeoJSON/TopoJSON URL or file contents in a character vector.
- layerId
the layer id
- group
the name of the group the newly created layers should belong to (for
clearGroup
andaddLayersControl
purposes). Human-friendly group names are permitted–they need not be short, identifier-style names. Any number of layers and even different types of layers (e.g. markers and polygons) can share the same group name.- markerType
The type of marker. Either
marker
orcircleMarker
- markerIcons
Icons for Marker. Can be a single marker using
makeIcon
or a list of markers usingiconList
- markerIconProperty
The property of the feature to use for marker icon. Can be a JS function which accepts a feature and returns an index of
markerIcons
. In either case the result must be one of the indexes of markerIcons.- markerOptions
The options for markers
- clusterOptions
if not
NULL
, markers will be clustered using Leaflet.markercluster; you can usemarkerClusterOptions()
to specify marker cluster options- clusterId
the id for the marker cluster layer
- labelProperty
The property to use for the label. You can also pass in a JS function that takes in a feature and returns a text/HTML content.
- labelOptions
A Vector of
labelOptions
to provide label options for each label. DefaultNULL
- popupProperty
The property to use for popup content You can also pass in a JS function that takes in a feature and returns a text/HTML content.
- popupOptions
A Vector of
popupOptions
to provide popups- stroke
whether to draw stroke along the path (e.g. the borders of polygons or circles)
- color
stroke color
- weight
stroke width in pixels
- opacity
stroke opacity (or layer opacity for tile layers)
- fill
whether to fill the path with color (e.g. filling on polygons or circles)
- fillColor
fill color
- fillOpacity
fill opacity
- dashArray
a string that defines the stroke dash pattern
- smoothFactor
how much to simplify the polyline on each zoom level (more means better performance and less accurate representation)
- noClip
whether to disable polyline clipping
- pathOptions
Options for shapes
- highlightOptions
Options for highlighting the shape on mouse over.
- title
An optional title for the legend
- position
legend position
- locale
The numbers will be formatted using this locale
- numberFormatOptions
Options for formatting numbers
- valueProperty
The property to use for coloring
- scale
The scale to use from chroma.js
- steps
number of breakes
- mode
q for quantile, e for equidistant, k for k-means
- channelMode
Default "rgb", can be one of "rgb", "lab", "hsl", "lch"
- padding
either a single number or a 2 number vector for clipping color values at ends.
- correctLightness
whether to correct lightness
- bezierInterpolate
whether to use bezier interpolate for determining colors
- colors
overrides scale with manual colors
- legendOptions
Options to show a legend.
- kml
a KML URL or contents in a character vector.
- latfield
field name for latitude
- lonfield
field name for longitude
- delimiter
field separator
- csv
a CSV URL or contents in a character vector.
- csvParserOptions
options for parsing the CSV. Use
csvParserOptions
() to supply csv parser options.- gpx
a GPX URL or contents in a character vector.
Examples
## addGeoJSONv2
# \donttest{
geoJson <- readr::read_file(
"https://rawgit.com/benbalter/dc-maps/master/maps/historic-landmarks-points.geojson"
)
leaflet() %>%
setView(-77.0369, 38.9072, 12) %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addWebGLGeoJSONHeatmap(
geoJson,
size = 30, units = "px"
) %>%
addGeoJSONv2(
geoJson,
markerType = "circleMarker",
stroke = FALSE, fillColor = "black", fillOpacity = 0.7,
markerOptions = markerOptions(radius = 2)
)
# }
## for more examples see
# browseURL(system.file("examples/draw.R", package = "leaflet.extras"))
# browseURL(system.file("examples/geojsonv2.R", package = "leaflet.extras"))
# browseURL(system.file("examples/search.R", package = "leaflet.extras"))
# browseURL(system.file("examples/TopoJSON.R", package = "leaflet.extras"))
## addGeoJSONChoropleth
# \donttest{
geoJson <- readr::read_file(
"https://rawgit.com/benbalter/dc-maps/master/maps/ward-2012.geojson"
)
leaflet() %>%
addTiles() %>%
setView(-77.0369, 38.9072, 11) %>%
addBootstrapDependency() %>%
enableMeasurePath() %>%
addGeoJSONChoropleth(
geoJson,
valueProperty = "AREASQMI",
scale = c("white", "red"),
mode = "q",
steps = 4,
padding = c(0.2, 0),
labelProperty = "NAME",
popupProperty = propstoHTMLTable(
props = c("NAME", "AREASQMI", "REP_NAME", "WEB_URL", "REP_PHONE", "REP_EMAIL", "REP_OFFICE"),
table.attrs = list(class = "table table-striped table-bordered"),
drop.na = TRUE
),
color = "#ffffff", weight = 1, fillOpacity = 0.7,
highlightOptions = highlightOptions(
weight = 2, color = "#000000",
fillOpacity = 1, opacity = 1,
bringToFront = TRUE, sendToBack = TRUE
),
pathOptions = pathOptions(
showMeasurements = TRUE,
measurementOptions = measurePathOptions(imperial = TRUE)
)
)
# }
## for more examples see
# browseURL(system.file("examples/geojsonv2.R", package = "leaflet.extras"))
# browseURL(system.file("examples/measurePath.R", package = "leaflet.extras"))
# browseURL(system.file("examples/search.R", package = "leaflet.extras"))
# browseURL(system.file("examples/TopoJSON.R", package = "leaflet.extras"))
## addKML
# \donttest{
kml <- readr::read_file(
system.file("examples/data/kml/crimes.kml.zip", package = "leaflet.extras")
)
leaflet() %>%
setView(-77.0369, 38.9072, 12) %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addWebGLKMLHeatmap(kml, size = 20, units = "px") %>%
addKML(
kml,
markerType = "circleMarker",
stroke = FALSE, fillColor = "black", fillOpacity = 1,
markerOptions = markerOptions(radius = 1)
)
# }
## addKMLChoropleth
# \donttest{
kml <- readr::read_file(
system.file("examples/data/kml/cb_2015_us_state_20m.kml.zip", package = "leaflet.extras")
)
leaflet() %>%
addBootstrapDependency() %>%
setView(-98.583333, 39.833333, 4) %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addKMLChoropleth(
kml,
valueProperty = JS(
"function(feature){
var props = feature.properties;
var aland = props.ALAND/100000;
var awater = props.AWATER/100000;
return 100*awater/(awater+aland);
}"
),
scale = "OrRd", mode = "q", steps = 5,
padding = c(0.2, 0),
popupProperty = "description",
labelProperty = "NAME",
color = "#ffffff", weight = 1, fillOpacity = 1,
highlightOptions = highlightOptions(
fillOpacity = 1, weight = 2, opacity = 1, color = "#000000",
bringToFront = TRUE, sendToBack = TRUE
),
legendOptions = legendOptions(
title = "% of Water Area",
numberFormatOptions = list(
style = "decimal",
maximumFractionDigits = 2
)
)
)
# }
## addCSV
# \donttest{
csv <- readr::read_file(
system.file("examples/data/csv/world_airports.csv.zip", package = "leaflet.extras")
)
leaflet() %>%
setView(0, 0, 2) %>%
addProviderTiles(providers$CartoDB.DarkMatterNoLabels) %>%
addCSV(
csv,
csvParserOptions("latitude_deg", "longitude_deg"),
markerType = "circleMarker",
stroke = FALSE, fillColor = "red", fillOpacity = 1,
markerOptions = markerOptions(radius = 0.5)
)
# }
## addGPX
# \donttest{
airports <- readr::read_file(
system.file("examples/data/gpx/md-airports.gpx.zip", package = "leaflet.extras")
)
leaflet() %>%
addBootstrapDependency() %>%
setView(-76.6413, 39.0458, 8) %>%
addProviderTiles(
providers$CartoDB.Positron,
options = providerTileOptions(detectRetina = TRUE)
) %>%
addWebGLGPXHeatmap(airports, size = 20000, group = "airports", opacity = 0.9) %>%
addGPX(
airports,
markerType = "circleMarker",
stroke = FALSE, fillColor = "black", fillOpacity = 1,
markerOptions = markerOptions(radius = 1.5),
group = "airports"
)
# }
## for a larger example see
# browseURL(system.file("examples/GPX.R", package = "leaflet.extras"))