Saya perlu menggunakan jalan untuk membandingkan posisi GPS untuk memverifikasi bahwa tidak ada kesalahan dalam data.
Saya mengunduh map.osm dari situs yang memiliki informasi Kota Roma dan mengubahnya menjadi Garis Spasial di 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")
Jadi dengan Objek Garis Spasial saya mencoba menggunakan fungsi distm tetapi dituduh bahwa objek spasial tidak dapat digunakan (tidak dalam format yang sesuai).
Ada cara lain menggunakan OSM untuk mendapatkan informasi hanya jalan yang bisa saya bandingkan dengan data GPS di R?
distm
adalah fungsi dari paket geosphere dalam R, ini menghitung jarak antara titik ke titik atau titik ke Objek Spasial, mengembalikan matriks dalam kasus kedua. `a <- distm (c (taksi $ lat [1], taksi $ lon [1]), hw_lines, fun = distHaversine)` Kesalahan tersebut mengatakan "Kesalahan dalam .pointsToMatrix (y): poin harus berupa vektor dengan panjang 2, matriks dengan 2 kolom, atau mewarisi dari objek SpatialPoints * ". as_sp
dari paket osmar, konversikan objek OSM yang dimuat ke Objek Spasial. > class(hw_lines)
[1] "SpatialLinesDataFrame"
attr(,"package")
[1] "sp"
distm
fungsinya? Bisakah Anda menunjukkan apa yang Anda coba dan pesan kesalahan? Apakah Anda mencoba menghitung jarak dari beberapa titik ke titik terdekat di jaringan jalan?