Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/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
GoogleMapsAPI-JavaScript:查找给定LatLng的高程_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

GoogleMapsAPI-JavaScript:查找给定LatLng的高程

GoogleMapsAPI-JavaScript:查找给定LatLng的高程,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,有人看到我的功能有什么问题吗? 我这样调用函数: var elevation = getElevation(tempWaypt); tempWaypt是一个LatLng对象文字,它一直告诉我 elevation 没有定义 function getElevation(location) { elevator.getElevationForLocations({ 'locations': [location]

有人看到我的功能有什么问题吗? 我这样调用函数:

 var elevation = getElevation(tempWaypt);
tempWaypt是一个LatLng对象文字,它一直告诉我

 elevation
没有定义

 function getElevation(location) {
            elevator.getElevationForLocations({
                'locations': [location]
              }, function(results, status) {
                        if (status === 'OK')
                        {
                            if (results[0])
                            {
                                  return results[0].elevation;
                            }
                        }
                  });
            }
我正在使用该功能确定LatLng是在陆地上还是在海上! 此外,当我在getElevation函数中设置一个变量时,该变量等于:

 results[0].elevation

它给了我正确的答案

很多谷歌地图API服务都是异步的。如果您想要访问结果,您可以使用但不限于以下方法,或者使用承诺

var elevation;
function getElevation(location) {
    ..., function(results, status) {
      ...
      if (results[0]) {
         elevation = results[0];
      }
  ...
}
使用承诺

getElevation.then(函数(立面){
控制台日志(“标高:+标高”);
});
功能高度(位置){
返回新承诺(功能(解决、拒绝){
//...
功能(结果、状态){
//...
如果(结果[0]){
解析(结果[0]);
}否则{
拒绝(“你的理由…”);
}
//...
}

}
由于地球上许多干燥的地方都位于海平面或海平面以下,要想确定一个点是在水上还是在陆地上,高程可能是一个棘手的方法。您可能需要使用专门处理水的数据源来获得更明确的答案

我在一家公司工作,该公司提供一个免费的web API来确定点是在水上还是在陆地上。我们在内部使用它。它被调用,而且非常简单:给定纬度和经度,它将通过get请求准确返回true或false

关于水的例子:

关于土地的例子:

由于您使用的是JavaScript,下面是一个可能使用的jQuery代码段示例:

function is_water_huh(lat, lon) {
  $.get( "https://api.onwater.io/api/v1/results/" + lat + "," + lon, function( data ) {
    return data['water'];
  });
}

alert(is_water_huh(23.92323, -66.3));

听起来可能很愚蠢,但是你怎么写这个承诺呢?从我在网上看到的东西我真的无法理解
{
  lat: 42.35,
  lon: -71.1,
  water: false
}
function is_water_huh(lat, lon) {
  $.get( "https://api.onwater.io/api/v1/results/" + lat + "," + lon, function( data ) {
    return data['water'];
  });
}

alert(is_water_huh(23.92323, -66.3));