我正在尝试使用 Leaflet
在经纬度点之间创建地图上的线。以下是示例输入数据:
segment_id latitude1 longitude1 latitude2 longitude2 len
1 1 48.15387 17.07388 48.15396 17.07387 10.98065
2 1 48.15396 17.07387 48.15404 17.07377 11.31327
3 1 48.15404 17.07377 48.15410 17.07364 11.74550
4 1 48.15410 17.07364 48.15412 17.07349 11.48138
5 1 48.15412 17.07349 48.15412 17.07334 11.63625
6 2 48.15424 17.07307 48.15432 17.07299 10.79304
这应该有6行结果
lat1,lng1
-> lat2,lng2
。我在使用addPolylines
时遇到了麻烦,它会创建额外的不需要的线条,我不确定原因所在。
这是它应该看起来的样子,没有多余叠放在一起的线条:D
以下是我的代码,但是很糟糕:
drawEdges <- function(x) {
d <- cbind(x$latitude1,x$latitude2)
s <- rep(1:nrow(x), each = 2) + (0:1) * nrow(x)
latitudeOut <- d[s]
e <- cbind(x$longitude1,x$longitude2)
t <- rep(1:nrow(x), each = 2) + (0:1) * nrow(x)
longitudeOut <- e[t]
mymap <<- addPolylines(map = mymap,data = x, lng = ~longitudeOut, lat = ~latitudeOut)
}
if (!is.null(edges)){
segments <- split( edges , f = edges$segment_id )
segments
sapply(segments, drawEdges)
}
感谢您的帮助。