R 传单-放大和缩小时地图上的点移动

R 传单-放大和缩小时地图上的点移动,r,google-maps,leaflet,zooming,R,Google Maps,Leaflet,Zooming,我使用spool包创建了一个地图小部件,然后使用函数addMarkers()添加了两个层。然而,我发现地图上的点在放大和缩小时会改变它们的位置。相关脚本如下所示: 首先,在传单 pchIcons <- function(pch = 0:14, width = 30, height = 30, col = 1:15, ...) { pchLength <- length(pch) pchFiles <- character(pchLength) # create a

我使用
spool
包创建了一个地图小部件,然后使用函数
addMarkers()
添加了两个层。然而,我发现地图上的点在放大和缩小时会改变它们的位置。相关脚本如下所示:

首先,在
传单

pchIcons <- function(pch = 0:14, width = 30, height = 30, col = 1:15, ...) {
  pchLength <- length(pch)
  pchFiles <- character(pchLength)

  # create a sequence of png images
  for (i in seq_len(pchLength)) {
    pchTempFile <- tempfile(fileext = '.png')
    png(pchTempFile, width = width, height = height, bg = 'transparent')
    par(mar = c(0, 0, 0, 0))
    plot.new()
    points(.5, .5, pch = pch[i], cex = 1.5, col = col[i], ...)
    dev.off()
    pchFiles[i] = pchTempFile
  }
  pchFiles
}
最后,我们可以发现当放大或缩小时,地图上的点会移动(如屏幕截图所示)。


有人知道问题出在哪里吗?我该如何解决?欢迎任何意见

缩放时,地图将动态更改。我相信这些点在同一个地点,道路细节只是在变化。不确定,我们可以以谷歌地图为例:当我们放大/缩小时,地点的位置不会改变。不知道
R
的语法,但您可能需要正确指定。看见
baseLayer <- leaflet(zero) %>%
  addProviderTiles("Stamen.Toner") %>%
  setView(posParis[["lng"]], posParis[["lat"]], zoom = 12)

addZeroLayer <- baseLayer %>%
  addMarkers(popup = paste(paste(zero$Code, zero$Ecart),
                           zero$Address,
                           sep = "<br/>"),
             lng = as.numeric(zero$Long),
             lat = as.numeric(zero$Lat),
             icon = ~ icons(
               iconUrl = pchIcons(rep(magasinEcart[1], nrow(zero)),
                                  40,
                                  40,
                                  col = colorZero,
                                  lwd = 2)
             ),
         group = '0')

addOneLayer <- addZeroLayer %>%
  addMarkers(popup = paste(paste(one$Code, one$Ecart),
                           one$Address,
                           sep = "<br/>"),
             lng = as.numeric(one$Long),
             lat = as.numeric(one$Lat),
             icon = ~ icons(
               iconUrl = pchIcons(rep(magasinEcart[2], nrow(one)),
                                  40,
                                  40,
                                  col = colorOne,
                                  lwd = 2)
             ),
         group = '1')
mapTourist <- addOneLayer %>%
  addLayersControl(overlayGroups = c('0', '1'),
                   options = layersControlOptions(collapsed = FALSE)) %>%
  addLegend("bottomright",
            pal = colorFactor(brewer.pal(9, 'Set1')[3:4],
                              unique(magasinBaseComp$Ecart)),
            values = names(magasinEcart),
            title = "Ecart",
            opacity = 1)