2012-12-12 58 views
6

Tôi hiện đang tính toán khoảng cách lái xe giữa hai điểm trên một trong các trang web wordpress của tôi bên trong một hàm. Tôi thực hiện việc này bằng ma trận khoảng cách google bằng cách gọiTính toán "như chim bay" khoảng cách php

wp_remote_get(
    "http://maps.googleapis.com/maps/api/distancematrix/json?origins=". 
    urlencode($origin). 
    "&destinations=". 
    urlencode($destination). 
    "&sensor=false&units=imperial" 
) 

rồi chèn nguồn gốc và đích đến mà người dùng đã nhập thông qua biểu mẫu vào url. Có thể sử dụng cách tiếp cận tương tự để tính toán khoảng cách "như chim bay" hay tôi phải làm lại chức năng của mình không?

+1

mà bạn có thể thực hiện mà không có bản đồ google. Tìm kiếm công thức giúp bạn có khoảng cách ngắn nhất giữa hai điểm trên quả địa cầu. – MAXIM

+0

Câu hỏi này không phải về V3 API của Google Maps. (đã xóa thẻ) – Marcelo

Trả lời

7

Khoảng cách giữa 2 điểm: (lat1, lon1) đến (lat2, lon2)

distance = acos(
    cos(lat1 * (PI()/180)) * 
    cos(lon1 * (PI()/180)) * 
    cos(lat2 * (PI()/180)) * 
    cos(lon2 * (PI()/180)) 
    + 
    cos(lat1 * (PI()/180)) * 
    sin(lon1 * (PI()/180)) * 
    cos(lat2 * (PI()/180)) * 
    sin(lon2 * (PI()/180)) 
    + 
    sin(lat1 * (PI()/180)) * 
    sin(lat2 * (PI()/180)) 
    ) * 3959 

3959 là bán kính Trái Đất trong Miles. Thay thế giá trị này bằng bán kính trong KM, (hoặc bất kỳ đơn vị nào khác) để nhận kết quả trên cùng một đơn vị.

Bạn có thể xác minh triển khai của mình bằng cách so sánh với worked example:

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