Tôi đang sử dụng trình mã hóa địa lý của Google cho lat và lon và câu hỏi của tôi là, có cách nào bạn có thể tìm ra mã zip với vĩ độ và kinh độ không?Vĩ độ và kinh độ có thể tìm mã zip?
Trả lời
Tôi nghĩ rằng những gì bạn đang tìm kiếm là address_components[]
trong mảng results
. Có lẽ một cái gì đó như thế này sẽ làm việc, chỉ cần gõ dưới đây để nó có thể có lỗi trong nó, nhưng tôi nghĩ rằng bạn sẽ có được ý tưởng.
http://code.google.com/apis/maps/documentation/geocoding/#Results
function (request, response) {
geocoder.geocode({ 'address': request.term, 'latLng': centLatLng, 'region': 'US' }, function (results, status) {
response($.map(results, function (item) {
return {
item.address_components.postal_code;//This is what you want to look at
}
}
Lưu ý câu trả lời dưới đây cho câu trả lời cập nhật (dường như API không thay đổi liên quan đến câu trả lời này kể từ khi 2013): http://stackoverflow.com/a/17933106/4526479 –
PlaceFinder API của Yahoo cung cấp một wat tốt để tra cứu dữ liệu vị trí bởi lat/lng:
http://developer.yahoo.com/geo/placefinder/
Dưới đây là một url ví dụ mà họ sử dụng:
http://where.yahooapis.com/geocode?q=38.898717,+-77.035974&gflags=R
Có vẻ như quá :
Nguồn: Google Maps API Service
Geocoding là quá trình chuyển đổi địa chỉ (như "1600 Amphitheatre Parkway, Mountain View, CA") vào tọa độ địa lý (như vĩ độ và kinh độ 37,423021 -122,083739), mà bạn có thể sử dụng để đặt cột mốc hoặc vị trí bản đô. API mã hóa địa lý của Google cung cấp cách trực tiếp để truy cập trình mã hóa địa lý qua yêu cầu HTTP. Ngoài ra, dịch vụ cho phép bạn thực hiện thao tác trò chuyện (chuyển tọa độ thành địa chỉ); quá trình này được gọi là "mã hóa địa lý đảo ngược".
Bạn cũng nên kiểm tra tài liệu này trong đó có một số mẫu mã: Reverse Geocoding
yoda: tôi đang chuyển đổi địa chỉ giống như bạn đã đăng ở trên, nhưng câu hỏi của tôi là nhiều hơn "có cách nào tôi có thể nhận mã zip dựa trên lat và lon không. –
Đây là giải pháp của tôi mà bỏ qua google js và nhận được kết quả như json (jquery & coffeescript):
navigator.geolocation.getCurrentPosition (pos) ->
coords = pos.coords
url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=#{ coords.latitude },#{ coords.longitude }&sensor=true&callback=zipmap"
$.ajax({
url: url,
dataType: 'json',
cache: true,
}).success (data) ->
for c in data.results[0].address_components
if c.types[0] == 'postal_code'
alert c.short_name
https://developers.google.com/maps/documentation/geocoding/
Tôi đoán này đã không làm việc từ lâu - mặc dù tôi thề rằng nó đã làm ở một thời điểm. Tôi phải bỏ lỡ một số cái bắt tay bí mật là một phần của google .js. Tôi chuyển sang openstreetmap.org:
getZip = (cb) ->
# try to populate zip from geolocation/google geocode api
if document.location.protocol == 'http:' && navigator.geolocation?
navigator.geolocation.getCurrentPosition (pos) ->
coords = pos.coords
url = "http://nominatim.openstreetmap.org/reverse?format=json&lat=#{ coords.latitude }&lon=#{ coords.longitude }&addressdetails=1"
$.ajax({
url: url,
dataType: 'jsonp',
jsonp: 'json_callback',
cache: true,
}).success (data) ->
cb(data.address.postcode)
Đây là javascript biên soạn:
getZip = function(cb) {
if (document.location.protocol === 'http:' && (navigator.geolocation != null)) {
return navigator.geolocation.getCurrentPosition(function(pos) {
var coords, url;
coords = pos.coords;
url = "http://nominatim.openstreetmap.org/reverse?format=json&lat=" + coords.latitude + "&lon=" + coords.longitude + "&addressdetails=1";
return $.ajax({
url: url,
dataType: 'jsonp',
jsonp: 'json_callback',
cache: true
}).success(function(data) {
return cb(data.address.postcode);
});
});
}
};
Sử dụng nó như thế này:
getZip(function(zipcode){ console.log("zip code found:" + zipcode); });
Đó là tốt để lưu ý rằng Google Maps có một phiên bản mới kể từ solultion này đã được trình bày.
Tham chiếu: https://developers.google.com/maps/documentation/geocoding/?csw=1#ReverseGeocoding
Đây là ví dụ được cập nhật cho Google Maps v3.Nó sử dụng các thành phần địa chỉ mà JIssak đề cập ở trên. Tôi nên lưu ý rằng không có dự phòng. Nếu không tìm thấy mã zip, nó sẽ không làm gì cả. Điều này có thể hoặc có thể không quan trọng đối với tập lệnh của bạn.
var latlng = new google.maps.LatLng(p.coords.latitude, p.coords.longitude);
geocoder = new google.maps.Geocoder();
geocoder.geocode({'latLng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
for (j = 0; j < results[0].address_components.length; j++) {
if (results[0].address_components[j].types[0] == 'postal_code')
alert("Zip Code: " + results[0].address_components[j].short_name);
}
}
} else {
alert("Geocoder failed due to: " + status);
}
});
- 1. Vĩ độ và Kinh độ dựa trên Mã Zip
- 2. Có thể thay đổi kinh độ và vĩ độ không?
- 3. Tìm các vĩ độ và kinh độ gần nhất
- 4. Tìm kinh độ và vĩ độ gần nhất trong mảng?
- 5. tìm vĩ độ và kinh độ bằng khoảng cách
- 6. Vĩ độ/Kinh độ và mét
- 7. iOS Tìm vị trí (Vĩ độ, kinh độ) từ Mã bưu điện
- 8. có Múi giờ sử dụng vĩ độ và kinh độ?
- 9. tìm kiếm bán kính theo vĩ độ/kinh độ
- 10. MKMapView Vĩ độ và Kinh độ Tọa độ
- 11. điểm giữa giữa hai vĩ độ và kinh độ
- 12. Biến đổi vĩ độ/kinh độ thành 1 dặm
- 13. Truy vấn trong kinh độ và vĩ độ trong MySQL
- 14. Cách xác thực vĩ độ và kinh độ
- 15. Chuyển đổi vĩ độ và kinh độ thành UTM
- 16. Truy vấn kinh độ vĩ độ PostgreSQL
- 17. Hướng đông về kinh độ vĩ độ
- 18. Vĩ độ/Kinh độ Khoảng cách
- 19. Thiết lập bảng vĩ độ và kinh độ của MySQL
- 20. Tìm tập vĩ độ và kinh độ sử dụng vĩ độ, kinh độ và hướng hiện tại của người dùng đang xem một đối tượng
- 21. Phân tích vĩ độ và kinh độ với Ruby
- 22. KDTree cho kinh độ/vĩ độ
- 23. Loại dữ liệu nào cho vĩ độ và kinh độ?
- 24. String để CLLocation vĩ độ và kinh độ
- 25. Nhận Kinh độ Vĩ độ từ một địa chỉ C#
- 26. Tra cứu mã vùng điện thoại theo vĩ độ và kinh độ
- 27. Cách tìm khoảng cách từ vĩ độ và kinh độ của hai địa điểm?
- 28. được vĩ độ và kinh độ sử dụng mã bưu điện
- 29. Thư viện Java có thể chuyển đổi vĩ độ/kinh độ sang tọa độ MGRS và ngược lại?
- 30. Vĩ độ Kinh độ Tọa độ với Mã Tiểu bang trong R
Lưu ý rằng câu trả lời được chấp nhận cho câu hỏi này đã lỗi thời. Có một giải pháp giải quyết phiên bản hiện tại của API Google Maps, có vẻ như đã không thay đổi kể từ năm 2013, tại đây: http://stackoverflow.com/a/17933106/4526479 –