1)正在同步兩個地圖
安裝開發版本解決了這個對我來說
# Dependencies
# If your devtools is not the latest version
# then you might have to install "units" manually
install.packages('units')
install.packages('devtools')
library(devtools)
devtools::install_github("environmentalinformatics-marburg/mapview", ref = "develop")
我使用的代碼:
library(leaflet)
library(ggmap)
library(mapview)
library(raster)
library(magrittr)
UK <- ggmap::geocode("United Kingdom")
#FILE1 <- read.csv("DATASET1.csv")
#FILE2 <- read.csv("DATASET2.csv")
FILE1 <- data.frame('lat' = c(51.31, 51.52, 51.53), 'lon' = c(0.06, 0.11, 0.09))
FILE2 <- data.frame('lat' = c(52.20, 52.25, 52.21), 'lon' = c(0.12, 0.12, 0.12))
map1 <- leaflet(FILE1)%>%
addTiles()%>%
addMarkers(clusterOptions = markerClusterOptions())
map2 <- leaflet(FILE2)%>%
addTiles()%>%
addMarkers(clusterOptions = markerClusterOptions())
mapview::latticeView(map1, map2, ncol = 2, sync = list(c(1, 2)), sync.cursor = FALSE, no.initial.sync = FALSE)
# Or:
sync(map1, map2)
2)疊加兩個地圖
您可以使用兩個單獨的數據框作爲數據源,並分別將它們添加到同一個映射中。更改符號樣式以便能夠區分它們。
map3 <- leaflet(FILE2)%>%
addTiles() %>%
addCircleMarkers(data = FILE1) %>%
addCircleMarkers(data = FILE2,
color = '#0FF')
map3
如果你想要做的集羣標記類似的東西,有對here和here一些好的文檔。基於一些從這些帖子中,我創建了下面,我使用現有的預風格的建議不同類型的集羣來區分代碼:
FILE1 <- data.frame('lat' = rnorm(n = 1000, mean = 51.4, sd = 0.5),
'lon' = rnorm(n = 1000, mean = 0.8, sd = 0.5))
FILE2 <- data.frame('lat' = rnorm(n = 1000, mean = 53, sd = 0.5),
'lon' = rnorm(n = 1000, mean = -0.5, sd = 0.5))
map3 <- leaflet(rbind(FILE1, FILE2)) %>%
addTiles() %>%
addCircleMarkers(data = FILE1,
color = '#FA5',
opacity = 1,
clusterOptions = markerClusterOptions(iconCreateFunction = JS("function (cluster) {
var childCount = cluster.getChildCount();
var c = ' marker-cluster-';
if (childCount < 3) {
c += 'large';
} else if (childCount < 5) {
c += 'large';
} else {
c += 'large';
}
return new L.DivIcon({ html: '<div><span>' + childCount + '</span></div>',
className: 'marker-cluster' + c, iconSize: new L.Point(40, 40) });
}"))) %>%
addCircleMarkers(data = FILE2,
color = '#9D7',
opacity = 1,
clusterOptions = markerClusterOptions(iconCreateFunction = JS("function (cluster) {
var childCount = cluster.getChildCount();
var c = ' marker-cluster-';
if (childCount < 3) {
c += 'small';
} else if (childCount < 5) {
c += 'small';
} else {
c += 'small';
}
return new L.DivIcon({ html: '<div><span>' + childCount + '</span></div>',
className: 'marker-cluster' + c, iconSize: new L.Point(40, 40) });
}")))
![example map](https://i.stack.imgur.com/J0DNN.jpg)
什麼是MapView類和瓣葉的版本?最近有一個更新小冊子,這可能會影響地圖視圖同步功能。這已在mapview的開發版本中得到修復。嘗試'devtools :: install_github(「environmentalinformatics-marburg/m apview @ develop」)'安裝開發版本。看到我以前的問題:http://stackoverflow.com/questions/42640120/sync-function-in-the-r-package-only-shows-one-panel-of-map – www
它說我需要安裝Rtools,但是當我嘗試它說Rtools不可用 – user1
R是什麼版本?嘗試升級到3.3.3並在此網站下載最新的Rtools(https://cran.r-project。org/bin/windows/Rtools /) – www