[英]readOGR point shapefile and plot using Leaflet > NULL values in LON/LAT
有人可以建议我如何进行以下操作:我有一个荷兰(Urk)镇的ESRI shapefile,以及用标记在地图上绘制每个房屋编号的方法。 Leaflet提供了一个错误,指出文件具有NULL值,但我似乎找不到它们。
# what does this file look like
> ogrInfo("WGS1984_Urk/nummer.shp", "nummer")
Source: "WGS1984_Urk/nummer.shp", layer: "nummer"
Driver: ESRI Shapefile; number of rows: 7792
Feature type: wkbPoint with 2 dimensions
Extent: (5.591987 52.64994) - (170059.4 518956.2)
LDID: 87
Number of fields: 18
name type length typeName
1 NUMMER_ID 4 16 String
2 STRAATNAAM 4 80 String
3 HUISNUMMER 0 8 Integer
......
# Read ESRI shapefiles into R
> huisnummers_Urk <-readOGR(dsn="WGS1984_Urk/nummer.shp",
layer="nummer", verbose = TRUE,
dropNULLGeometries= TRUE,
p4s = "+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs")
# Info from spdplyr package
> huisnummers_Urk
class : SpatialPointsDataFrame
features : 7792
extent : 5.591987, 170059.4, 52.64994, 518956.2 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs
variables : 18
# A tibble: 7,792 × 18
# Plot house in Leaflet
> leaflet(huisnummers_Urk) %>%
addTiles() %>%
addMarkers(lng = huisnummers_Urk$x1, lat = huisnummers_Urk$x2)
Error in validateCoords(lng, lat, funcName) :
addMarkers requires non-NULL longitude/latitude values
# Where are the missing values?
> huisnummers_Urk@coords[!complete.cases(huisnummers_Urk@coords),]
coords.x1 coords.x2
我应该从哪里开始看到我在做什么错? 我将所有坐标放在一个矩阵中进行检查,看不到任何NA / NULL。
我发现了两个错误:一个在代码中,一个在数据集中。
1)lng和lat的Leaflet命令应指向“ huisnummers_Urk $ coords.x1”。 坐标槽的名称也为“ coords”,在de列中重复此名称。 所以我犯了一个错误,将这部分遗漏了。
2)图表中有lng / lat值,您可以使用spdplyr包对其进行过滤:
huisnummer_urk <- huisnummer_urk %>%
filter(huisnummer_urk$coords.x1 >= -90,
huisnummer_urk$coords.x1 <= 90, huisnummer_urk$coords.x2 >= -180, huisnummer_urk$coords.x2 <= 180)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.