Preciso usar as estradas para comparar as posições do GPS e verificar se não há erros nos dados.
Eu baixei o map.osm de um site que tinha informações da cidade de Roma e o transformou em Spatial Lines in 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")
Então, com o Objeto de Linhas Espaciais, tentei usar a função distm, mas é acusado de que o objeto espacial não pode ser usado (não está em um formato adequado).
Existe outra maneira de usar o OSM para obter informações apenas de estradas que eu posso comparar com dados de GPS no R?
distm
é uma função da geosfera do pacote em R, calcula a distância entre ponto a ponto ou ponto para Objeto Espacial, retornando uma matriz no segundo caso. `a <- distm (c (taxi $ lat [1], taxi $ lon [1]), hw_lines, fun = distHaversine)` O erro diz "Erro em .pointsToMatrix (y): os pontos devem ser vetores de comprimento 2, matrizes com 2 colunas ou herdadas de um objeto SpatialPoints * ". as_sp
do pacote osmar converte o objeto OSM carregado em um objeto espacial. > class(hw_lines)
[1] "SpatialLinesDataFrame"
attr(,"package")
[1] "sp"
distm
função? Você pode mostrar o que tentou e a mensagem de erro? Você está tentando calcular distâncias de alguns pontos até o ponto mais próximo na rede rodoviária?