2010-03-24 51 views
7

Tôi cần "tìm địa điểm gần nhất" trên trang web của chúng tôi."Tìm vị trí gần nhất" bằng Mã Zip/Mã bưu chính?

Nơi khách truy cập nhập mã zip/bưu điện của họ, sau đó họ được chuyển hướng đến trang web cụ thể cho vị trí gần nhất của chúng tôi. Chúng tôi có bốn mươi địa điểm ở Hoa Kỳ và Canada.

Tôi làm cách nào để xây dựng một cái gì đó như thế này? Tôi có thể làm điều này với API Google Maps không? Tôi đã có bản đồ tùy chỉnh trên Google Maps. Nó được vẽ với các vị trí của chúng tôi. Sẽ rất tuyệt khi gửi cho Google Maps một lệnh để nói "vị trí gần nhất của chúng tôi tại ________ mã zip" là gì.

Mọi đề xuất?

Trả lời

7

Kiểm tra việc tìm kiếm sự gần gũi đặc trưng ở đây:

Using PHP/MySQL with Google Maps

Bạn sẽ phải mã địa lý mã zip của bạn vào tọa độ (cũng có thể với các API của Google Maps, nhưng có lẽ thích hợp hơn để làm với một địa chỉ đầy đủ) , sau đó bạn có thể chạy tìm kiếm proximimity chi tiết trong hướng dẫn.

+0

@Pekka Sử dụng API Google Maps - có thể thực hiện phép tính, nhận kết quả, nhưng không hiển thị bản đồ không? – codemonkey613

+0

@codemonkey đúng vậy. Bạn có thể tạo yêu cầu mã hóa địa lý (tối đa 10.000 mỗi ngày) cho API mà không hiển thị nó trên bản đồ, * nhưng * Tôi nghĩ rằng điều khoản dịch vụ của họ cấm lưu trữ lâu dài các kết quả mã hóa địa lý - họ muốn bạn thực hiện yêu cầu mỗi lần bạn cần dữ liệu. –

+0

Cảm ơn. 10.000 nên là quá đủ cho nhu cầu của chúng ta. Và vâng, chúng tôi sẽ không lưu trữ kết quả. – codemonkey613

0

Google Maps có hạn chế trong việc sử dụng là vì mục đích kinh doanh, vì vậy bạn có thể muốn xem xét những (hạn chế) trả trước đó. Từ kinh nghiệm cũ của tôi, tôi sẽ đề xuất API MapQuest. Bạn có thể tìm thấy chi tiết tại đây: http://developer.mapquest.com/ và một số hướng dẫn bắt đầu nhanh tại đây http://www.mapquest.com/features/developer_tools_oapi_quickstart

MapQuest đường nối trở nên tốt hơn khi nói đến giao dịch thương mại. Dù sao, hãy kiểm tra T & C trước khi bạn thực hiện nó trong quá trình sản xuất.

Họ có JavaScriopt mà tôi nghĩ là WS thông thường để giải mã vị trí địa lý.

Trân Konrad

+1

@Konrad Tôi luôn đề xuất các lựa chọn thay thế cho Google Maps nhưng các điều khoản dịch vụ của Google rất khoan dung cũng hướng tới việc sử dụng trong các trang web thương mại. Đó chỉ là các trang web * tính phí truy cập * hoặc nếu không được đóng cửa cho công chúng nơi cấm sử dụng Google Maps AFAIK. –

+0

@Pekka Điều đó nghe có vẻ đúng. – codemonkey613

+0

Cảm ơn bạn đã chia sẻ liên kết này, dịch vụ của họ trông rất thú vị. –

4

nếu bạn có kinh độ và vĩ độ của mỗi mã bưu điện (tìm kiếm google), bạn có thể sử dụng Formula Haversine để tính toán các nước láng giềng gần nhất.

http://www.codecodex.com/wiki/Calculate_Distance_Between_Two_Points_on_a_Globe

+1

Điều đó sẽ yêu cầu tôi tìm cơ sở dữ liệu mã zip/bưu chính của Hoa Kỳ/Canada. Mà sẽ có hơn 80.000 hồ sơ; và nó sẽ phải được cập nhật. Có vẻ như một chút quá mức cần thiết cho một ứng dụng đơn giản như vậy. Vì vậy, tôi hy vọng tôi có thể làm điều này với API Google Maps. – codemonkey613

+0

để người dùng nhập mã zip, bạn chọn tất cả 40+ vị trí của mình vì bạn chưa biết địa điểm nào gần nhất. bạn lặp lại các vị trí trong lớp ứng dụng của mình và gọi cho googlemaps api cho từng vị trí để tính khoảng cách của nó so với mã zip mà người dùng đã nhập. Hơn 40 cuộc gọi ajax sau đó bạn có tất cả khoảng cách cho tất cả 40 vị trí để bạn lọc danh sách phù hợp và hiển thị cho người dùng. hmmm, mức độ đáp ứng này cần phải như thế nào? –

+1

Nó sẽ giống như: người dùng nhập mã zip, API Google Maps trả lại lat và dài cho mã zip đó. Tôi đã có lat và dài cho hơn 40 địa điểm của chúng tôi, sử dụng Công thức Haversine để tính toán gần nhất. – codemonkey613

3

Bạn cần một database mã zip với kinh độ và vĩ độ, từ đó bạn có thể tính toán khoảng cách.

+0

Cơ sở dữ liệu được liên kết sử dụng dữ liệu cũ 10 năm. Mã ZIP mới được thêm vào rất thường xuyên. –

+0

Nếu tôi chỉ có mã bưu điện thì sao? – Umair

+0

Bò thánh thật tuyệt vời! Cảm ơn –

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