我使用谷歌地理編碼爲經緯度和我的問題是,有沒有辦法可以找到經緯度的郵政編碼?緯度和經度可以找到郵政編碼?
回答
我想你正在尋找的是results
數組中的address_components[]
。也許這樣的事情會起作用,只需要輸入下面的內容,這樣可能會有錯誤,但我認爲你會明白。
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
}
}
請注意下面的答案以獲得最新的答案(顯然API自這個答案以來沒有改變2013):http://stackoverflow.com/a/17933106/4526479 –
雅虎PlaceFinder API提供了良好的笏由緯度/經度查找位置數據:
http://developer.yahoo.com/geo/placefinder/
這裏的,他們用一個例子網址:
http://where.yahooapis.com/geocode?q=38.898717,+-77.035974&gflags=R
看起來是這樣:
解析是將地址(如「1600 劇場百匯,山景,CA」)轉換爲地理座標 (如緯度37.423021和經度-122.083739),您可以使用 放置標記或位置的過程地圖。 Google地理編碼API 提供了一種通過HTTP請求訪問地理編碼器的直接方式。 此外,該服務允許您執行逆向操作 (將座標轉換爲地址);這個過程被稱爲 「反向地理編碼」。
你也應該看看這個文檔其中有一些示例代碼: Reverse Geocoding
yoda:我將地址轉換爲你張貼在上面,但我的問題是更多「是否有一種方法,我可以得到基於經緯度的郵政編碼 –
這裏是我的解決方案,它跳過谷歌js和得到的結果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/
我想這沒有工作很長一段時間 - 儘管我發誓一點。我必須錯過一些祕密握手,這是Google .js的一部分。我切換到使用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)
以下是編譯的JavaScript:
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);
});
});
}
};
使用方法如下:
getZip(function(zipcode){ console.log("zip code found:" + zipcode); });
這是很好的注意,谷歌地圖有新版本時,因爲介紹了這一解決方案。
參考:https://developers.google.com/maps/documentation/geocoding/?csw=1#ReverseGeocoding
下面是谷歌地圖3.0版更新的例子。它使用JIssak上面提到的地址組件。我應該注意到沒有倒退。如果它找不到郵政編碼,它什麼也不做。這對您的腳本來說可能很重要,也可能不重要。
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. 經度/緯度到郵政編碼?
- 2. 從經緯度查找郵政編碼
- 3. 通過Java中的郵政編碼查找緯度和經度
- 4. 英國郵政編碼的地理編碼經度和緯度?
- 5. 得到緯度和經度使用郵政編碼
- 6. 從經度和緯度沒有得到郵政編碼
- 7. 從經緯度獲取郵政編碼
- 8. iOS從郵政編碼查找位置(經度,緯度)
- 9. 從緯度和經度獲取一個郵政編碼
- 10. 從經度和緯度座標獲取郵政編碼
- 11. 從javascript中的緯度和經度獲取郵政編碼
- 12. 使用PHP獲取郵政編碼的經度和緯度
- 13. 谷歌地圖從郵政編碼獲取經度和緯度
- 14. 如何獲取郵政編碼的經度和緯度?
- 15. 基於郵政編碼的經度和緯度
- 16. Perl得到的位置(經度+緯度),加上郵政編碼
- 17. android從印度經緯度獲得印度的郵政編碼
- 18. 如何查找英國的緯度和經度的郵政編碼
- 19. 查找最接近的郵政編碼,經緯度在MySQL
- 20. 如何查找經緯度對應的郵政編碼
- 21. 尋找基於郵政編碼的經緯度
- 22. 從經度,緯度獲取郵政編碼?
- 23. 從經度/緯度獲取郵政編碼
- 24. 從郵政編碼獲取經度/緯度
- 25. SimpleGeo是否提供郵政編碼給緯度/經度映射?
- 26. 獲取緯度/經度附近的郵政編碼列表
- 27. 得到一個地方的經度和緯度針對其郵政編碼
- 28. 獲得緯度和經度給出郵政編碼和/或地址字符串
- 29. 谷歌地圖:從地理編碼的郵政編碼獲取緯度/經度
- 30. 需要找到經度和緯度的郵政編碼和存儲到我的數據庫
請注意,此問題的接受答案已經過時。有一個解決方案可以解決當前版本的Google Maps API,它自2013年起顯然沒有改變,在這裏:http://stackoverflow.com/a/17933106/4526479 –