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