2010-07-13 32 views
6

Tôi đang làm việc trên một mô hình vận chuyển, và tôi sắp làm một ma trận thời gian đi lại giữa 5.000 điểm. Có cách nào miễn phí, bán đáng tin cậy để tính thời gian di chuyển giữa tất cả các nút của tôi không?Tính toán thời gian di chuyển chuyến đi sử dụng API geo sẵn cho 5k + địa chỉ

Tôi nghĩ google bản đồ có một giới hạn về số lượng các truy vấn/hits tôi có thể đạt được.

EDIT

Tôi muốn sử dụng một api như bản đồ google hoặc những cái tương tự như chúng bao gồm các dữ liệu như hướng dẫn đường, số làn xe, tốc độ gửi, loại đường, vv ...

EDIT 2

Xin lưu ý rằng dữ liệu bản đồ openstreet là không đầy đủ và không có sẵn cho tất cả các khu vực pháp lý bên ngoài nước Mỹ

+0

Bạn đang làm việc ở khu vực pháp lý nào (nơi bạn thấy OpenStreetMap không đầy đủ)? Có vẻ như dữ liệu là vấn đề ở đây. – tcarobruce

+0

@tcarobruce - ở Canada rất nhiều đường phố (bối cảnh nông thôn) bị thiếu. bây giờ tôi có lớp GIS thực tế; tuy nhiên, nó không bao gồm thông tin về đường, chẳng hạn như chia/không phân chia, số làn đường, chuyển động trên giao lộ, v.v ... – dassouki

Trả lời

6

Google Directions API hạn chế bạn 2500 calls per day. Ngoài ra, điều khoản dịch vụ quy định rằng bạn chỉ được sử dụng dịch vụ "kết hợp với hiển thị kết quả trên bản đồ của Google".

Bạn có thể quan tâm đến OpenTripPlanner, một dự án đang phát triển có thể thực hiện định tuyến đa phương thức và Graphserver mà OpenTripPlanner được xây dựng.

Một cách tiếp cận sẽ là sử dụng dữ liệu OpenStreetMap với Graphserver để tạo Shortest Path Trees từ mỗi nút.

+0

dữ liệu OpenStreet cho thẩm quyền của tôi là vô cùng thiếu. Tôi có một hoạt động triển khai thực hiện bán chạy làm việc; Tuy nhiên, tôi không có định hướng đường bộ và hầu hết dữ liệu tốc độ – dassouki

+0

Và cảm ơn tất cả các liên kết tuyệt vời – dassouki

1

Vì đó là tổng số 12.502.500 kết nối, tôi chắc chắn bạn sẽ đạt một số giới hạn nếu bạn cố gắng sử dụng bản đồ của Google cho tất cả chúng. Bạn cần bao nhiêu kết quả chính xác/bạn đang đi bao xa?

Tôi có thể cố gắng tạo bản đồ thô với tốc độ di chuyển trên nó (ví dụ: đánh dấu các liên kết nhanh, yadda yadda) sau đó sử dụng một số phần mềm để tính toán mất bao lâu từ điểm này sang điểm khác. Người ta có thể hình dung nó như là một vấn đề điện từ trường, nơi bạn đang cố gắng để tính toán sức đề kháng từ điểm đến điểm trên một chiếc máy bay với sức đề kháng khác nhau (interstates là dây, hồ là mạch mở ...).

+0

Đó là nhiều dữ liệu có sẵn trên các trang web như bản đồ google khiến nó hấp dẫn hơn chính phương thức đó. Tôi có quyền truy cập vào phần mềm gis và các cách để thực hiện phân tích; tuy nhiên, hướng đường, độ dài, thời gian di chuyển, tốc độ, yada yada, là độ chi tiết hơn bất kỳ dữ liệu nào tôi có. – dassouki

+0

Tại sao lại có tổng cộng 12.502.500 kết nối? – gauteh

+0

@gauteh - Tôi nghĩ rằng gấp đôi 5.000^2 vì thời gian chuyến đi đến đích có thể khác với cách quay lại – dassouki

-1

Nhiều gói phần mềm GIS có thuật toán định tuyến, nếu bạn có dữ liệu ... Dữ liệu vận tải có thể khá chi tiêu.

Có một số lựa chọn nguồn khác cho lập kế hoạch tuyến đường. Đây có phải là một cái gì đó để được thực hiện nhiều lần, hoặc một quá trình một lần? Điều này có thể được chia thành các nhóm nhỏ hơn các điểm không? Có lẽ bạn có thể sử dụng nhiều nguồn định tuyến và chia nhỏ các điểm dữ liệu thành các phân đoạn đủ nhỏ cho mỗi công cụ định tuyến.

Dưới đây là một số lựa chọn khác từ tìm kiếm của Google nhanh chóng: Wikipedia Route66 Truck Miles

1

Nếu bạn thực sự cần tất cả các đường bay tính toán chính xác và lưu trữ trong cơ sở dữ liệu của bạn, có vẻ như (và tôi sẽ tin) mà bạn sẽ phải tiêu tiền để có được điều này. Như bạn có thể tưởng tượng, điều này là tốn kém để phát triển và có nên được đổi mới.

Tôi sẽ, tuy nhiên, thăm dò một chút về vấn đề của bạn:

  • Bạn có thực sự cần tất cả 5000!khoảng cách trong cơ sở dữ liệu? Điều gì xảy ra nếu bạn yêu cầu Google cho họ khi bạn cần chúng, và sau đó lưu trữ chúng (nếu được phép). Tôi đã có các ứng dụng web như thế này vì mô hình tăng lưu lượng truy cập chậm, tôi đã có thể tận dụng các dịch vụ miễn phí sớm để có được ý tưởng.
  • Bạn có thực sự cần tất cả 5000 điểm không? Hoặc bạn có thể chọn top 100 và có một vấn đề dễ bị xử lý hơn?
  • Có thể có một số lai, nơi bạn lưu trữ khoảng cách giữa các thành phố lớn và thực hiện ước tính nhiều hơn cho khoảng cách ngắn hơn.

Một lần nữa, tôi thực sự không biết vấn đề của bạn là gì, nhưng có thể suy nghĩ một chút bên ngoài hộp sẽ giúp bạn tìm ra giải pháp dễ dàng hơn.

+0

Tôi đang cố gắng xây dựng mô hình nhu cầu đi lại để vận chuyển, nơi chúng tôi yêu cầu thời gian đi lại giữa tất cả các nút của hệ thống – dassouki

1

Bạn có thể phải thực hiện một số chẩn đoán tại đây. Có lẽ bạn có thể ước tính thời gian đi lại dựa trên một vài yếu tố như khoảng cách hình học và một số tính năng về điểm bắt đầu và điểm kết thúc (đô thị so với khu vực nông thôn, quốc gia, ...). Bạn có thể nhận được một vài khoảng cách, cố gắng để phù hợp với các thông số của bạn trên một tập hợp con của họ và xem như thế nào bạn có thể dự đoán những người khác. Dự đoán của tôi sẽ là, ví dụ, thời gian di chuyển tiếp cận sự phụ thuộc tuyến tính từ khoảng cách như khoảng cách phát triển lớn hơn, trong nhiều trường hợp.

Tôi biết đó là lộn xộn, nhưng hey bạn đang cố gắng để ước tính datapoints 12.5mio (hoặc bất kỳ số lượng :)

Bạn cũng có thể có thể từng bước thêm kiến ​​thức từ đã-lấy "thực" thời gian di chuyển bằng tìm điểm gần những người bạn đang tìm kiếm:

  • nhận điểm gần nhất StartApprox, EndApprox để bắt đầu và điểm kết thúc như vậy mà bạn có một thời gian đi lại giữa StartApprox và EndApprox
  • khoảng cách tính toán StartError, EndError giữa bắt đầu và StartApprox, kết thúc và EndApprox
  • nếu StartError + EndError> Khoảng cách (StartApprox, EndApprox) * 0,10 (hoặc bất kỳ ngưỡng nào của bạn) -> tính toán khoảng cách qua API (và lưu trữ nó), khác sử dụng thời gian đi lại cộng với thời gian trên không dựa trên StartError + EndError

(nếu bạn có 100 địa chỉ ở NY và 100 trong SF, tất cả các giá trị sẽ ít nhiều giống nhau (tức là sự khác biệt giữa chúng có thể thấp hơn so với sự không chắc chắn có liên quan trong các dự đoán này) và cách tiếp cận đó sẽ giữ cho bạn không thể phát hành 10000 truy vấn mà 1 sẽ làm)

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