Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
地理编码中的Javascript变量作用域问题_Javascript_Variables_Geocoding - Fatal编程技术网

地理编码中的Javascript变量作用域问题

地理编码中的Javascript变量作用域问题,javascript,variables,geocoding,Javascript,Variables,Geocoding,当我在代码中使用地理编码API时,我将var latitude指定为全局变量(第20行),在函数geocoder中,变量起作用。但在第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/jq

当我在代码中使用地理编码API时,我将var latitude指定为全局变量(第20行),在函数geocoder中,变量起作用。但在第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);
14
15
16
17
18 var geocoder=新的google.maps.geocoder();
19 var经度=0.0;
20瓦纬度=0.0;
21
22如果(地理编码器){
23地理编码员。地理编码({‘地址’:‘卢浮宫博物馆’},功能(结果、状态){
24如果(status==google.maps.GeocoderStatus.OK){
25经度=结果[0]。geometry.location.nb;
26纬度=结果[0]。geometry.location.ob;
27 console.log(结果[0].geometry.location);
28             } 
29其他{
30 console.log('未找到结果:'+状态);
31             }
32             });
33 }
34
35.对数(纬度);

地理编码器是异步工作的,因此当您调用console.log(latitude)时,地理编码器尚未完成,因此没有为latitude分配不同的值

要显示坐标,可以执行以下操作:

    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);
    }
});

那我该怎么解决这个问题呢?当我将大括号“}”移到行的末尾时,它也不起作用。在定义纬度的函数中,纬度是第一个可以使用该值的时刻。你想用它做什么?我试图找到一个特定的地理位置,在这里是卢浮宫,并打印出它的协调信息。我已经更新了我的答案。看看你能不能用这个做点什么。