Necesito usar las carreteras para comparar las posiciones de GPS para verificar que no haya errores en los datos.
Descargué el map.osm de un sitio que tiene información de la ciudad de Roma y lo transformé en Spatial Lines en R.
src <- osmsource_file(file = "rome.osm")
bb <- center_bbox(41.9, 12.3, 1000, 1000)
rome <- get_osm(bb, src)
ways <- find(rome, way(tags(k == "highway")))
ways <- find_down(rome, way(ways))
ways <- subset(rome, ids = ways)
hw_lines <- as_sp(ways, "lines")
Entonces, con el objeto Spatial Lines intenté usar la función distm pero se acusa de que el objeto espacial no se puede usar (no está en un formato adecuado).
¿Hay otra forma de usar OSM para obtener información de solo carreteras que puedo comparar con datos de GPS en R?
distm
es una función de la geosfera de paquete en R, calcula la distancia entre un punto a otro o un punto a un objeto espacial, devolviendo una matriz en el segundo caso. `a <- distm (c (taxi $ lat [1], taxi $ lon [1]), hw_lines, fun = distHaversine)` El error dice "Error en .pointsToMatrix (y): los puntos deben ser vectores de longitud 2, matrices con 2 columnas, o heredando de un objeto SpatialPoints * ". as_sp
del paquete osmar convierte el objeto OSM cargado en un objeto espacial. > class(hw_lines)
[1] "SpatialLinesDataFrame"
attr(,"package")
[1] "sp"
distm
función? ¿Puedes mostrar lo que intentaste y el mensaje de error? ¿Está tratando de calcular distancias desde algunos puntos hasta el punto más cercano en la red de carreteras?