LeafletJS,简化了输入数据点的方法

时间:2015-07-24 19:37:08

标签: javascript leaflet openstreetmap

我使用LeafletJS

创建了this interactive toggle map

如果您see the source code,则有超过70个数据点。

但是,我正在开展一个超过1500个数据点的项目。

是否有简化的方式输入超过1500个数据点?

R很简单,因为它读取了CSV,我必须使用Javascript路径来切换地图图层和数据点。

请告诉我,有一些方法比在EXCEL中连接1500多行并创建输入字符串以复制和粘贴到源代码中更有效。

2 个答案:

答案 0 :(得分:1)

如果您正在使用R(我使用Rstudio),您可以添加Leaflet包(https://rstudio.github.io/leaflet/它有一些先决条件)。首先,您将CSV作为数据框加载,然后使用一个衬垫添加标记图层(请参阅https://rstudio.github.io/leaflet/markers.html

对于图层控件,请按照此示例https://rstudio.github.io/leaflet/showhide.html

进行操作

答案 1 :(得分:1)

以下显示了街道和图像之间的切换以及在传单中完成的两个单独的数据观察。

library(leaflet)
library(dplyr)
d <- read.table("http://www.hafro.is/hafroskip/sild.data",header=F)
names(d) <- c("id","date","lon","lat","cm1","cm2")
d$date <- lubridate::ymd_hm(d$date)
x1 <- d %>%
  filter(id == 101109)
x2 <- d %>%
  filter(id == 101143)
leaflet() %>%
  addTiles(urlTemplate = "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", group="streetmap") %>%
  addTiles(urlTemplate = "http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",
           group="image") %>%
  addCircleMarkers(data=x1, lng = ~lon, lat = ~lat, weight = 1, radius = 4, col="yellow",
                   popup = ~date, group="Less than something") %>%
  addCircleMarkers(data=x2, lng = ~lon, lat = ~lat, weight = 1, radius = 4, col="green",
                   popup = ~date, group="More than something") %>%
  addLayersControl(
    baseGroups = c("streetmap","image"),
    overlayGroups = c("Less than something","More than something"),
    options = layersControlOptions(collapsed = FALSE))

希望这与你所寻找的类似。

埃纳尔