Tính khoảng cách mongodb
Tôi cần tính tổng khoảng cách di chuyển giữa một tập hợp các điểm. Tất cả chúng đều có dấu thời gian để sắp xếp chúng theo đúng thứ tự. Tôi chỉ được phép sử dụng MongoDB Bộ sưu tập mẫu
Tôi không biết làm thế nào để tính khoảng cách giữa các điểm đó theo đúng thứ tự - stackoverflow. comghi bàn. 0 MongoDB có thể thực hiện khoảng cách giữa hai điểm bằng cách sử dụng $near hoặc $geoNear Trả về tài liệu theo thứ tự gần với một điểm cụ thể, từ gần nhất đến xa nhất. geoNear yêu cầu chỉ mục không gian địa lý. https. // tài liệu. mongodb. com/manual/reference/command/geoNear/ Trong trường hợp của bạn, tôi không nghĩ rằng điều này sẽ giải quyết được vấn đề vì bạn muốn thực hiện nhiều phép tính khoảng cách giữa nhiều điểm MongoDB có thể được hướng dẫn để tạo thuật toán rất phức tạp bằng cách sử dụng MapReduce. Ngay cả khi tôi không phải là chuyên gia về ứng dụng GIS, bạn có thể thử tạo thói quen MapReduce với Hàm tính toán khoảng cách giữa nhiều điểm được sắp xếp theo ý muốn MongoDB - MapReduce Liên kết này có thể giúp bạn viết một hàm JS sẽ được sử dụng trong Map Giảm. Tính khoảng cách giữa hai điểm có vĩ độ? Làm cách nào để tính khoảng cách tuyến đường giữa nhiều điểm GeoJSON trong MongoDB? Dưới đây là một số ví dụ về dữ liệu của tôi - stackoverflow. comghi bàn. 2 câu trả lời được chấp nhận Như đã chỉ ra trong các nhận xét, sẽ cố gắng vẽ một bức tranh tương tự ở đây bằng Java. Giả sử tên cơ sở dữ liệu của bạn là Nếu bạn đang tạo một ứng dụng cho phép người dùng sắp xếp/hiển thị dữ liệu theo vị trí gần nhất của họ, thì hướng dẫn này có thể giúp ích cho bạn Đây là một triển khai cơ bản của việc sử dụng chức năng “sắp xếp theo khoảng cách”. chúng tôi sẽ sử dụng MongoDB cho việc này Bước 1MongoDB cung cấp chức năng tìm kiếm định vị theo mặc định. bạn chỉ cần thực hiện điều này Schema mẫu cho ứng dụng Nhà hàng { Xem đối tượng vị trí ở trên, MongoDB Geolocation cần lấy dữ liệu bằng cách sử dụng tọa độ. Ở đây, loại là một chuỗi và sẽ chứa Điểm và mảng tọa độ chứa Kinh độ và Vĩ độ, vì vậy một tài liệu mẫu có thể như thế này { Bây giờ, chúng tôi sẽ tạo một Chỉ mục để thực hiện công việc này. Định vị địa lý MongoDB yêu cầu một bộ sưu tập chỉ có tối đa một chỉ mục db.collection.createIndex( { "location" : "2dsphere" } ) Bước 2Bây giờ chúng ta sẽ tạo route trong NodeJS và MongoDB Query để lấy kết quả gần nhất theo vị trí người dùng. Tôi đang sử dụng tổng hợp 0 cho việc nàyapp.get('/search',(req, res, next)=>{ gần- Điểm tìm tài liệu gần nhất. bây giờ, bạn có thể xem đầu ra ở đây, nó sẽ hiển thị các tài liệu gần nhất. chúng tôi cũng có một trường mới dist, hiển thị khoảng cách được tính toán |