You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中Mapview点未全显及st_buffer区域合并的问题解决

问题:mapview采样点显示不全及st_buffer缓冲区合并异常

使用mapview构建地图时遇到两个问题:

  • 用st_sample生成的10个采样点,仅部分能在mapview中显示;但用plot()函数绘图时,所有点都能正常显示。
  • st_buffer生成的缓冲区会将本该独立的区域合并,该问题在mapview和plot绘图中均存在。

重现代码

library(sf)
library(mapview)
library(magrittr)
set.seed(145)

chemins.32188 = st_zm(chemins2) %>% st_transform(crs = 32188)

rd.pts.sentiers <- st_sample(x = chemins.32188, size = 10)

buff.pt = st_buffer(x = rd.pts.sentiers, 
                    dist = units::set_units(x = 100, 
                                           value = "m"))
mapviewOptions(fgb = FALSE)
mapview(chemins.32188) + 
  mapview(rd.pts.sentiers) +
  mapview(buff.pt)

mapview绘图效果:仅显示部分红色采样点,蓝色缓冲区存在明显的区域合并现象。

plot绘图代码

plot(chemins.32188$geom) 
plot(buff.pt, add= TRUE, col = scales::alpha("blue", .5))
plot(rd.pts.sentiers, add= TRUE, pch = 19, col = "red")

plot绘图效果:所有红色采样点均正常显示,但蓝色缓冲区的区域合并问题依然存在。

数据结构

chemins2 = structure(list(Name = "Path Measure", description = NA_character_, 
               timestamp = structure(NA_real_, class = c("POSIXct", "POSIXt"
               )), begin = structure(NA_real_, class = c("POSIXct", "POSIXt"
               )), end = structure(NA_real_, class = c("POSIXct", "POSIXt"
               )), altitudeMode = NA_character_, tessellate = -1L, extrude = 0L, 
               visibility = -1L, drawOrder = NA_integer_, icon = NA_character_, 
               sentier = NA_character_, layer = "path Parc — Path Measure", 
               path = "~/Desktop/path Parc.kml|layername=Path Measure|geometrytype=LineString25D|uniqueGeometryType=yes", 
               geom = structure(list(structure(list(structure(c(299434.130314458, 
                                                                300531.43655987, 299434.130314458, 5046816.92873926, 5047257.53966348, 
                                                                5046816.92873926), dim = 3:2), structure(c(299434.130314458, 
                                                                                                           300401.157828111, 299434.130314458, 5046816.92873926, 5046249.12770288, 
                                                                                                           5046816.92873926), dim = 3:2)), class = c("XY", "MULTILINESTRING", 
                                                                                                                                                     "sfg"))), n_empty = 0L, crs = structure(list(input = "EPSG:32188", 
                                                                                                                                                                                                  wkt = "PROJCRS[\"NAD83 / MTM zone 8\",\n    BASEGEOGCRS[\"NAD83\",\n        DATUM[\"North American Datum 1983\",\n            ELLIPSOID[\"GRS 1980\",6378137,298.257222101,\n                LENGTHUNIT[\"metre\",1]]],\n        PRIMEM[\"Greenwich\",0,\n            ANGLEUNIT[\"degree\",0.0174532925199433]],\n        ID[\"EPSG\",4269]],\n    CONVERSION[\"MTM zone 8\",\n        METHOD[\"Transverse Mercator\",\n            ID[\"EPSG\",9807]],\n        PARAMETER[\"Latitude of natural origin\",0,\n            ANGLEUNIT[\"degree\",0.0174532925199433],\n            ID[\"EPSG\",8801]],\n        PARAMETER[\"Longitude of natural origin\",-73.5,\n            ANGLEUNIT[\"degree\",0.0174532925199433],\n            ID[\"EPSG\",8802]],\n        PARAMETER[\"Scale factor at natural origin\",0.9999,\n            SCALEUNIT[\"unity\",1],\n            ID[\"EPSG\",8805]],\n        PARAMETER[\"False easting\",304800,\n            LENGTHUNIT[\"metre\",1],\n            ID[\"EPSG\",8806]],\n        PARAMETER[\"False northing\",0,\n            LENGTHUNIT[\"metre\",1],\n            ID[\"EPSG\",8807]]],\n    CS[Cartesian,2],\n        AXIS[\"easting (E(X))\",east,\n            ORDER[1],\n            LENGTHUNIT[\"metre\",1]],\n        AXIS[\"northing (N(Y))\",north,\n            ORDER[2],\n            LENGTHUNIT[\"metre\",1]],\n    USAGE[\n        SCOPE[\"Engineering survey, topographic mapping.\"],\n        AREA[\"Canada - Quebec between 75°W and 72°W.; Canada - Ontario - east of 75°W.\"],\n        BBOX[44.98,-75,62.53,-72]],\n    ID[\"EPSG\",32188]]"), class = "crs"), class = c("sfc_MULTILINESTRING", 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "sfc"), precision = 0, bbox = structure(c(xmin = 299434.130314458, 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ymin = 5046249.12770288, xmax = 300531.43655987, ymax = 5047257.53966348
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ), class = "bbox"))), row.names = 1L, sf_column = "geom", agr = structure(c(Name = NA_integer_, 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  description = NA_integer_, timestamp = NA_integer_, begin = NA_integer_, 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  end = NA_integer_, altitudeMode = NA_integer_, tessellate = NA_integer_, 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  extrude = NA_integer_, visibility = NA_integer_, drawOrder = NA_integer_, 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  icon = NA_integer_, sentier = NA_integer_, layer = NA_integer_, 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  path = NA_integer_), class = "factor", levels = c("constant", 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "aggregate", "identity")), class = c("sf", "data.frame"))

内容的提问来源于stack exchange,提问作者M. Beausoleil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 12:34:50