从地址到纬度和经度数字的Javascript地理编码不起作用

我正在使用下面的地理编码function将文本地址转换为经度和纬度数字,但这不正确。 警报写入“未定义”。

谁能说有什么不对?

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript"> var geocoder = new google.maps.Geocoder(); var address = "new york"; geocoder.geocode( { 'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { var latitude = results[0].geometry.location.latitude; var longitude = results[0].geometry.location.longitude; alert(latitude); } }); </script> 

尝试使用此代替:

 var latitude = results[0].geometry.location.lat(); var longitude = results[0].geometry.location.lng(); 

浏览Google的api有点困难,但这里是相关的文档。

我遇到的一件麻烦事是如何去另一个方向。 从坐标到地址。 这是我使用upp的代码。 请不要说,我也使用jQuery。

 $.each(results[0].address_components, function(){ $("#CreateDialog").find('input[name="'+ this.types+'"]').attr('value', this.long_name); }); 

我正在做的是循环遍历所有返回的address_components并testing它们的types是否与表单中的任何input元素名称匹配。 如果他们这样做,我将元素的值设置为address_components值。
如果你只对整个地址感兴趣,那么你可以按照谷歌的例子

您正在错误地访问经度和纬度。

尝试

 <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript"> var geocoder = new google.maps.Geocoder(); var address = "new york"; geocoder.geocode( { 'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { var latitude = results[0].geometry.location.lat(); var longitude = results[0].geometry.location.lng(); alert(latitude); } }); </script> 

最近api的脚本标记已经改变。 使用这样的东西来查询Geocoding API并获取JSON对象

 <script type="text/javascript" src="https://maps.googleapis.com/maps/api/geocode/json?address=THE_ADDRESS_YOU_WANT_TO_GEOCODE&key=YOUR_API_KEY"></script> 

地址可能是类似的东西

1600 +露天剧场+大路,+山+视图+ CA(URI编码;你应该谷歌它非常有用)

或干脆

1600露天剧场大路,山景城,加州

通过在浏览器中input此地址https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY以及我的API密钥 ,我取回一个JSON对象,该对象包含Moutain视图CA的纬度和经度

 {"results" : [ { "address_components" : [ { "long_name" : "1600", "short_name" : "1600", "types" : [ "street_number" ] }, { "long_name" : "Amphitheatre Parkway", "short_name" : "Amphitheatre Pkwy", "types" : [ "route" ] }, { "long_name" : "Mountain View", "short_name" : "Mountain View", "types" : [ "locality", "political" ] }, { "long_name" : "Santa Clara County", "short_name" : "Santa Clara County", "types" : [ "administrative_area_level_2", "political" ] }, { "long_name" : "California", "short_name" : "CA", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "United States", "short_name" : "US", "types" : [ "country", "political" ] }, { "long_name" : "94043", "short_name" : "94043", "types" : [ "postal_code" ] } ], "formatted_address" : "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "geometry" : { "location" : { "lat" : 37.4222556, "lng" : -122.0838589 }, "location_type" : "ROOFTOP", "viewport" : { "northeast" : { "lat" : 37.4236045802915, "lng" : -122.0825099197085 }, "southwest" : { "lat" : 37.4209066197085, "lng" : -122.0852078802915 } } }, "place_id" : "ChIJ2eUgeAK6j4ARbn5u_wAGqWA", "types" : [ "street_address" ] }],"status" : "OK"} 

AngularJS这样的Web框架允许我们轻松地执行这些查询。