为什么不使用数字坐标而不是 sf object=POINT?
Why not using numeric coordinates instead of sf object=POINT?
我想在地图上显示点。这些点表示为坐标 (long/lat) 并作为数字存储在数据框中。我想知道我是否真的需要将数字坐标 (lon/lat) 转换为 POINT 类型的 sf 对象。我不知道这种转换有什么好处。在此示例中,我使用 2 列的数字坐标并将它们显示在地图上:
data(quakes)
leaflet(data = quakes[1:20,]) %>% addTiles() %>%
addMarkers(~long, ~lat)
这里的数据框(地震)不是空间的,lon/lat是数字的。但是,我可以将数字坐标转换为 sf POINT,然后在地图上显示它们:
coords <- quakes %>%
sf::st_as_sf(coords = c("long","lat"), crs = 4326) %>%
sf::st_geometry()
leaflet(data = coords[1:20,]) %>% addTiles() %>%
addMarkers()
问题是:如果在地图上显示点(标记)——我们应该先转换为空间对象还是只使用数字列?如果我可以使用数字 lon/lat 做完全相同的事情,那么使用 POINT 有什么意义呢?性能问题?
您不需要转换,如果您的空间对象的唯一目的是绘制 {leaflet}
地图 - 即您没有进行其他计算、统计、建模等 - 没有什么意义在转型中。
{leaflet}
documentation 对支持的数据类型非常直接 - {sf}
对象,{sp}
对象和常规纬度/经度 data.frames。
使用其中一种特殊空间格式的唯一(非常小)好处是您无需在 addMarker()
调用中指定纬度和经度映射。我不希望对性能有任何影响。
请注意,虽然 {leaflet} 支持多种数据输入方式,但它无法处理投影坐标系(东向和北向)中的数据。
我想在地图上显示点。这些点表示为坐标 (long/lat) 并作为数字存储在数据框中。我想知道我是否真的需要将数字坐标 (lon/lat) 转换为 POINT 类型的 sf 对象。我不知道这种转换有什么好处。在此示例中,我使用 2 列的数字坐标并将它们显示在地图上:
data(quakes)
leaflet(data = quakes[1:20,]) %>% addTiles() %>%
addMarkers(~long, ~lat)
这里的数据框(地震)不是空间的,lon/lat是数字的。但是,我可以将数字坐标转换为 sf POINT,然后在地图上显示它们:
coords <- quakes %>%
sf::st_as_sf(coords = c("long","lat"), crs = 4326) %>%
sf::st_geometry()
leaflet(data = coords[1:20,]) %>% addTiles() %>%
addMarkers()
问题是:如果在地图上显示点(标记)——我们应该先转换为空间对象还是只使用数字列?如果我可以使用数字 lon/lat 做完全相同的事情,那么使用 POINT 有什么意义呢?性能问题?
您不需要转换,如果您的空间对象的唯一目的是绘制 {leaflet}
地图 - 即您没有进行其他计算、统计、建模等 - 没有什么意义在转型中。
{leaflet}
documentation 对支持的数据类型非常直接 - {sf}
对象,{sp}
对象和常规纬度/经度 data.frames。
使用其中一种特殊空间格式的唯一(非常小)好处是您无需在 addMarker()
调用中指定纬度和经度映射。我不希望对性能有任何影响。
请注意,虽然 {leaflet} 支持多种数据输入方式,但它无法处理投影坐标系(东向和北向)中的数据。