2010-06-02 24 views
5

Tôi đang tìm cách tính toán khoảng cách ngắn nhất giữa hai điểm bên trong SQL Server 2008 chỉ tính đến khối lượng đất.khoảng cách giữa hai điểm trên đất bằng máy chủ sql

Tôi đã sử dụng kiểu dữ liệu địa lý cùng với STDistance() để tính toán điểm x khoảng cách đến điểm y khi chim bay, tuy nhiên điều này đôi khi đi qua biển mà tôi đang cố tránh.

Tôi cũng đã tạo ra một đa giác xung quanh ranh giới diện tích đất Tôi quan tâm đến

Tôi tin rằng tôi cần phải kết hợp hai phương pháp để đảm bảo rằng STDistance luôn vẫn nằm trong đa giác -. Trừ khi có một giải pháp đơn giản hơn.

Cảm ơn lời khuyên

Trả lời

1

Sử dụng STIntersects - http://msdn.microsoft.com/en-us/library/bb933899%28v=SQL.105%29.aspx để tìm hiểu những gì một phần của dòng là về đất đai.

Sau khi đọc nhận xét, yêu cầu của bạn có ý nghĩa. Tuy nhiên tôi khá chắc chắn không có kỹ thuật sẵn có để làm điều này trong SQL Server. Tôi giả sử bạn đang bỏ qua các con đường, và tham gia một cách tiếp cận như chim bay nhưng chỉ trên đất liền.

Cách duy nhất tôi có thể nghĩ để làm điều này là chuyển đổi khu vực của bạn thành raster (ô lưới) và thực hiện phân tích chi phí. Bạn sẽ thiết lập khu vực biển để có một chi phí cực kỳ cao nên thuật toán sẽ chạy quanh biển. Xem liên kết này để mô tả về kỹ thuật:

http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=cost_path

Nếu không cố gắng thực hiện các thuật toán dưới đây!

http://bit.ly/ckvciz

Có thể có các thư viện khác thực hiện việc này. Thay vào đó về cách sử dụng API Chỉ đường Google mới giữa hai thành phố - bạn sẽ nhận được khoảng cách đường thực tế sau đó.

http://code.google.com/apis/maps/documentation/directions/

+0

Cảm ơn bạn đã trả lời. Trừ khi tôi hiểu lầm rằng sẽ không cho tôi khoảng cách ngắn nhất trong khối lượng đất, nó sẽ chỉ cho phép tôi phân biệt khoảng cách giữa các vùng đất với khoảng cách trên biển. Có thể ví dụ đã làm sẽ giúp tôi giải thích. Khi quạ bay, Malaga (Tây Ban Nha) gần với Tanger (Morocco) hơn Madrid. Nếu chúng tôi chỉ có thể đi bằng đường bộ, Tanger vẫn có thể truy cập (sau một hành trình dài châu Âu, Trung Đông, vv) tuy nhiên hiện tại xa hơn Madrid, Paris, v.v ... Vì vậy, tôi đang cố tính toán khoảng cách chỉ khối lượng đất. –

+0

Máy chủ SQL không phân biệt giữa đất hoặc biển (hoặc các ngọn đồi, cho vấn đề đó). –

+0

Tôi cho rằng các đa giác sẽ được gán chính xác? – geographika

Các vấn đề liên quan