当我在代码上使用地理编码API时,我将 var latitude 指定为全局(第20行),而在函数地址解析器中,变量可以正常工作。但在第35行,它会抛出错误 0 。即使它适用于功能范围。
14 <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
15 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
16 <script type="text/javascript">
17
18 var geocoder = new google.maps.Geocoder();
19 var longitude = 0.0;
20 var latitude = 0.0;
21
22 if (geocoder) {
23 geocoder.geocode({ 'address': 'Louvre Museum' }, function (results, status) {
24 if (status == google.maps.GeocoderStatus.OK) {
25 longitude = results[0].geometry.location.nb;
26 latitude = results[0].geometry.location.ob;
27 console.log(results[0].geometry.location);
28 }
29 else {
30 console.log('No results found: ' + status);
31 }
32 });
33 }
34
35 console.log(latitude);
答案 0 :(得分:1)
Geocoder异步工作,因此当您调用console.log(纬度)时,Geocoder尚未完成,因此未为纬度分配不同的值。
https://developers.google.com/maps/documentation/geocoding/
要显示您的坐标,您可以执行以下操作:
geocoder.geocode({
'address': 'Louvre Museum'
}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
longitude = results[0].geometry.location.nb;
latitude = results[0].geometry.location.ob;
console.log(results[0].geometry.location);
document.getElementById('the_id_of_your_element').innerHTML = longitude + ',' + latitude;
} else {
console.log('No results found: ' + status);
}
});