Tôi cần sử dụng các con đường để so sánh các vị trí GPS để xác minh rằng chúng không có lỗi trong dữ liệu.
Tôi đã tải xuống map.osm từ một trang web có thông tin về Thành phố Rome và nó đã được chuyển đổi thành Spatial Lines ở 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")
Vì vậy, với Đối tượng Đường không gian, tôi đã cố gắng sử dụng chức năng distm nhưng bị cáo buộc rằng đối tượng không gian không thể được sử dụng (không phải ở định dạng phù hợp).
Có một cách khác sử dụng OSM để lấy thông tin chỉ những con đường mà tôi có thể so sánh với dữ liệu GPS trong R?
distm
là một hàm từ không gian địa lý gói trong R, nó tính toán khoảng cách điểm betweeen đến điểm hoặc điểm đến Đối tượng không gian, trả về một ma trận trong trường hợp thứ hai. `a <- distm (c (taxi $ lat [1], taxi $ lon [1]), hw_lines, fun = distHaversine)` Lỗi nói "Lỗi trong .pointToMatrix (y): các điểm phải là vectơ có độ dài 2, ma trận có 2 cột hoặc kế thừa từ một đối tượng SpatialPoints * ". as_sp
từ gói osmar chuyển đổi đối tượng OSM được tải sang Đối tượng không gian. > class(hw_lines)
[1] "SpatialLinesDataFrame"
attr(,"package")
[1] "sp"
distm
chức năng? Bạn có thể hiển thị những gì bạn đã cố gắng và thông báo lỗi? Bạn đang cố gắng tính khoảng cách từ một số điểm đến điểm gần nhất trên mạng đường bộ?