2009-07-14 31 views
5

Có thể sử dụng API cho Google Maps để lấy vĩ độ và kinh độ cho một mã bưu điện hoặc kết hợp Thành phố + Vùng nhất định cho các quốc gia nước ngoài như United Kingdon, France, Italy, Nhật Bản, Úc, vv?Lấy Latitude và Kinh độ cho các khu vực bên ngoài Hoa Kỳ

Tôi đang làm việc trên một dự án yêu cầu kết quả tìm kiếm địa phương. Đối với người dùng trong nước, tôi lấy lat/lon của mình qua Bảng mã Zip của Hoa Kỳ trong cơ sở dữ liệu của chúng tôi. Nó không liên quan đến việc hiển thị bất kỳ bản đồ nào, chỉ là kết quả của những người dùng khác trong khu vực của họ thông qua công thức bán kính dựa trên giá trị lat/lon. Đối với kết quả tìm kiếm địa phương của người dùng nước ngoài: Tôi chỉ hiển thị kết quả dựa trên Tên Thành phố phù hợp.

Tại thời điểm không// người dùng không thuộc Hoa Kỳ đang được truy lục qua dữ liệu GeoIP PHP. Tôi muốn có thể truy xuất các giá trị chính xác hơn tùy thuộc vào thành phố + khu vực hoặc mã bưu chính mà người dùng cung cấp.

Tôi đang cân nhắc việc nhận các bảng mã bưu điện (có các trường vĩ độ/kinh độ) cho các quốc gia khác. Hay ý tưởng API Google Map là một giải pháp tốt hơn?

+0

Hm .. tôi chỉ nhận thấy điều này http://www.maxmind.com/app/worldcities mà không bao gồm mã bưu chính nhưng ít nhất nó mang lại cho lat/lon cho tên thành phố. – Seth

+1

Cho dù những quốc gia đó là "nước ngoài" hay không phụ thuộc vào quan điểm của bạn, tất nhiên. –

+0

Tôi đã chỉnh sửa tiêu đề câu hỏi của mình. Nhược điểm của việc không có dữ liệu mã bưu chính là mọi người dùng từ một thành phố nhất định sẽ có cùng tọa độ vĩ độ/kinh độ, vì vậy, hiển thị kết quả từ xa nhất đến xa nhất, tuy nhiên, người dùng từ các thành phố lân cận có thể được bao gồm. Đây vẫn là một bước tiến từ những gì tôi hiện đang làm. – Seth

Trả lời

5

Tôi đã tìm thấy kết quả từ Google Maps Geocoder là khá tốt.

Để kiểm tra mã bưu điện hoặc địa chỉ nước ngoài của bạn (không viết bất kỳ mã nào), chỉ cần đính kèm tên quốc gia vào chuỗi và dùng thử trong hộp tìm kiếm google maps.

Hoặc, bạn có thể thực hiện tra cứu khá nhanh chóng trong Javascript:

geo = new GClientGeocoder(); 
geo.getLatLng("2337, Australia", function (point) { 
     GLog.write(point.lat() + "," point.lng()); 
    }); 
+0

Điều này có vẻ như là bước tiến tốt nhất. Đi ra ngoài cho một bữa ăn tối muộn và sau đó tôi sẽ cung cấp cho một đi. Cảm ơn bạn. – Seth

2

trước đây tôi đã sử dụng Google Maps cho mã hóa địa lý của nó, hoạt động tốt và có thể làm việc cho bất cứ nơi nào trên thế giới.

Sử dụng GClientGeocoder từ google và sử dụng 'setBaseCountryCode (countryCode: String)' phương pháp để thiết lập nó để các nước miền cấp cao nhất (http://en.wikipedia.org/wiki/CcTLD)

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