我的單張地圖看起來是這樣的:彈出與R中的傳單時彈出?
library(sp)
library(leaflet)
circleFun <- function(center = c(0,0),diameter = 1, npoints = 100){
r = diameter/2
tt <- seq(0,2*pi,length.out = npoints)
xx <- center[1] + r * cos(tt)
yy <- center[2] + r * sin(tt)
Sr1 = Polygon(cbind(xx, yy))
Srs1 = Polygons(list(Sr1), "s1")
SpP = SpatialPolygons(list(Srs1), 1:1)
return(SpP)
}
Circle.Town <- circleFun(c(1,-1),2.3,npoints = 100)
df1 <- data.frame(long=c(0.6,1,1.4), lat=c(-2, -.8, -0.2), other=c('a', 'b', 'c'), VAM=c(10,8,6),
type=c('Public', 'Public', 'Private'), id=c(1:3)) %>%
mutate(X=paste0('<strong>id: </strong>',
id,
'<br><strong>type</strong>: ',
type,
'<br><strong>VAM</strong>: ',
VAM))
# Create a continuous palette function
pal <- colorNumeric(
palette = "RdYlBu",
domain = df1$VAM
)
leaflet(height = "400px") %>%
addTiles() %>%
addPolygons(data = Circle.Town, color = 'green', fillOpacity = .7) %>%
addCircleMarkers(data = df1, lat = ~lat, lng =~long,
radius = ~VAM, popup = ~as.character(X),
fillColor = ~pal(VAM),
stroke = FALSE, fillOpacity = 0.8,
clusterOptions = markerClusterOptions()) %>%
addLegend(position = "topright",
pal = pal, values = df1$VAM,
title = "VAM",
opacity = 1
) %>%
setView(lng = 1, lat = -1, zoom = 8)
現在,我得到一個彈出,當我點擊了一個社交圈。懸停鼠標而不是點擊時可以獲取信息嗎?理想情況下,我想要像this。
謝謝!
我試着與我的單張地圖這個解決方案當我使用saveWidget函數時,不會獲得「yourmap」文件夾。我得到的只是.html文件。當我在Brackets(我選擇的文本編輯器)中打開它時,'var popup = ...'不存在。有什麼建議麼? – Lauren
@Lauren,很抱歉,我無法訪問我的R代碼;我沒有電腦了!但是當你點擊html文件時,你有沒有傳單地圖?當你運行代碼時,你有沒有警告? – MLavoie
是的,當我點擊.html文件時,我的地圖確實出現了。如果我用我的文本編輯器打開它,有幾個超長(看起來)的亂碼字符串,大量的座標,然後看起來是彈出信息。由於我在Javascript中使用Leaflet的經驗相對有限,因此我並沒有真正意識到JS的語法。打開時沒有警告! – Lauren