Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.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
Google maps 如何从谷歌地理编码器(GoogleGeocoder)获取位置的纬度和经度名称,并使用应用程序脚本在web应用程序中显示_Google Maps_Google Apps Script_Web Applications_Geolocation - Fatal编程技术网

Google maps 如何从谷歌地理编码器(GoogleGeocoder)获取位置的纬度和经度名称,并使用应用程序脚本在web应用程序中显示

Google maps 如何从谷歌地理编码器(GoogleGeocoder)获取位置的纬度和经度名称,并使用应用程序脚本在web应用程序中显示,google-maps,google-apps-script,web-applications,geolocation,Google Maps,Google Apps Script,Web Applications,Geolocation,我能够使用谷歌的地理编码器读取纬度和经度。但是当我试图从JSON对象获取位置名称时,web应用程序无法显示它。然后尝试在警报中显示。然后呢?是,警报可以显示整个地址。然后再次尝试使用document.getElementById('id')在webApp中显示相同的内容,但无法显示 这是我的yetanotherDist.HTML GAS项目文件代码 您发布的代码中有几个错误,这让我想知道这是真实的代码还是幻想的’-) 钥匙前面不应该有额外的“ 您还没有声明GeoCoder引用,但您说您的代码

我能够使用谷歌的地理编码器读取纬度和经度。但是当我试图从JSON对象获取位置名称时,web应用程序无法显示它。然后尝试在警报中显示。然后呢?是,警报可以显示整个地址。然后再次尝试使用document.getElementById('id')在webApp中显示相同的内容,但无法显示

这是我的yetanotherDist.HTML GAS项目文件代码



您发布的代码中有几个错误,这让我想知道这是真实的代码还是幻想的’-)

钥匙前面不应该有额外的

您还没有声明
GeoCoder
引用,但您说您的代码能够找到(警告)地址-好奇

在我做的测试中,我使用Dev-Tools-sensor通过lat/lng欺骗了谷歌山的位置,地理编码的结果精确定位了谷歌总部,所以我猜它可以工作

<!DOCTYPE html>
<html>
  <head>
        <style>
            div:before{content:attr(id)': ';color:red;}
            body{padding:5rem;font-family:courier}
        </style>
        <base target="_top">

        <script src="//maps.google.com/maps/api/js?libraries=geometry&key=APIKEY"></script>
        <script>
            window.onload = function() {
                var startPos;
                var geoOptions = {
                    enableHighAccuracy: true
                };


                let geocoder=new google.maps.Geocoder();
                
                
                
                var geoSuccess = function(position) {
                    startPos = position;
                    document.getElementById('startLat').innerHTML = startPos.coords.latitude;
                    document.getElementById('startLon').innerHTML = startPos.coords.longitude;
                    
                    var latlong = new google.maps.LatLng( startPos.coords.latitude, startPos.coords.longitude );

                    fromLat = startPos.coords.latitude;
                    fromLng = startPos.coords.longitude;
                    
                    toLat = 48.8567;
                    toLng = 2.3508;
                    
                    
                    distance = google.maps.geometry.spherical.computeDistanceBetween(
                        new google.maps.LatLng(fromLat, fromLng), 
                        new google.maps.LatLng(toLat, toLng)
                    );
                    document.getElementById("Distance").innerHTML = distance;


                    geocoder.geocode({'latLng':latlong}, function(results, status){
                        if (status == google.maps.GeocoderStatus.OK){
                            if (results){
                                document.getElementById("Location").innerHTML = latlong;
                                document.getElementById("Address").innerHTML = results[0].formatted_address;
                            }
                        } else {
                            alert("Could not get the geolocation information");
                        }
                    });
                };

                var geoError = function(error) {
                    console.log('Error occurred. Error code: ' + error.code);
                };
                
                
                navigator.geolocation.getCurrentPosition( geoSuccess, geoError, geoOptions );
            }

        </script>
    </head>
    <body>
        <div id="startLat">startLat</div>
        <div id="startLon">startLon</div>
        <div id="Location">Location</div>
        <div id="Address">Address</div>
        <div id="Distance">Distance</div>
    </body>
</html>

div:before{content:attr(id)';color:red;}
正文{填充:5rem;字体系列:courier}
window.onload=函数(){
var startPos;
变量geoOptions={
EnableHighAccurance:正确
};
让geocoder=new google.maps.geocoder();
var geoSuccess=函数(位置){
startPos=位置;
document.getElementById('startAt').innerHTML=startPos.coords.latitude;
document.getElementById('starton').innerHTML=startPos.coords.longitude;
var latlong=new google.maps.LatLng(startPos.coords.latitude,startPos.coords.longitude);
fromLat=起始纬度;
fromLng=startPos.coords.longitude;
托拉特=48.8567;
toLng=2.3508;
距离=google.maps.geometry.spherical.ComputedDistanceBeween(
新的google.maps.LatLng(fromLat,fromLng),
新google.maps.LatLng(toLat,toLng)
);
document.getElementById(“距离”).innerHTML=距离;
geocoder.geocode({'latLng':latlong},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
如果(结果){
document.getElementById(“位置”).innerHTML=latlong;
document.getElementById(“地址”).innerHTML=results[0]。格式化的\u地址;
}
}否则{
警报(“无法获取地理位置信息”);
}
});
};
var GEORROR=函数(错误){
console.log('发生错误。错误代码:'+错误。代码);
};
navigator.geolocation.getCurrentPosition(geoSuccess、geoError、geoOptions);
}
惊吓
斯达顿
位置
地址
距离

究竟为什么要多次加载maps api?在
window.onload=function(){
<!DOCTYPE html>
<html>
  <head>
        <style>
            div:before{content:attr(id)': ';color:red;}
            body{padding:5rem;font-family:courier}
        </style>
        <base target="_top">

        <script src="//maps.google.com/maps/api/js?libraries=geometry&key=APIKEY"></script>
        <script>
            window.onload = function() {
                var startPos;
                var geoOptions = {
                    enableHighAccuracy: true
                };


                let geocoder=new google.maps.Geocoder();
                
                
                
                var geoSuccess = function(position) {
                    startPos = position;
                    document.getElementById('startLat').innerHTML = startPos.coords.latitude;
                    document.getElementById('startLon').innerHTML = startPos.coords.longitude;
                    
                    var latlong = new google.maps.LatLng( startPos.coords.latitude, startPos.coords.longitude );

                    fromLat = startPos.coords.latitude;
                    fromLng = startPos.coords.longitude;
                    
                    toLat = 48.8567;
                    toLng = 2.3508;
                    
                    
                    distance = google.maps.geometry.spherical.computeDistanceBetween(
                        new google.maps.LatLng(fromLat, fromLng), 
                        new google.maps.LatLng(toLat, toLng)
                    );
                    document.getElementById("Distance").innerHTML = distance;


                    geocoder.geocode({'latLng':latlong}, function(results, status){
                        if (status == google.maps.GeocoderStatus.OK){
                            if (results){
                                document.getElementById("Location").innerHTML = latlong;
                                document.getElementById("Address").innerHTML = results[0].formatted_address;
                            }
                        } else {
                            alert("Could not get the geolocation information");
                        }
                    });
                };

                var geoError = function(error) {
                    console.log('Error occurred. Error code: ' + error.code);
                };
                
                
                navigator.geolocation.getCurrentPosition( geoSuccess, geoError, geoOptions );
            }

        </script>
    </head>
    <body>
        <div id="startLat">startLat</div>
        <div id="startLon">startLon</div>
        <div id="Location">Location</div>
        <div id="Address">Address</div>
        <div id="Distance">Distance</div>
    </body>
</html>