2017-03-20 4 views
-1

私の機能に問題が見られることはありますか? 私はそうのような関数を呼び出す:Google Maps API - JavaScript:指定されたLatLngの標高を検索する

var elevation = getElevation(tempWaypt); 

tempWayptは、緯度経度、オブジェクトリテラルであり、それは

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 

をそれは私に正しい答えを与える

答えて

0

Google MapsのAPIサービスの多くは非同期です。結果にアクセスしたい場合は、以下の方法やプロミスを使用することができますが、これらに限定されません。地球上の多くの乾いた場所はで、または下記存在するためのポイントは、水や土地の上にあるかどうかを把握するためにトリッキーな方法することができます約束

getElevation.then(function(elevation){ 
 
    console.log("Elevation: " + elevation); 
 
}); 
 

 
function getElevation(location) { 
 
    return new Promise(function(resolve, reject) { 
 
    //... 
 
    function(results, status) { 
 
     //... 
 
     if (results[0]) { 
 
     resolve(results[0]); 
 
     } else { 
 
     reject('Your reason ...'); 
 
     } 
 
    //... 
 
    } 
 
}

+0

あなたはその約束をどのように書いていますか?オンラインで見たことのあるものから私の頭の中に本当に頭を浮かべることはできません。 –

+0

上記の更新された答えをご覧ください。 –

0

標高を使用して

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

海面。具体的には水を扱うデータソースを使用して、の回答を明示的ににしたい場合があります。

私は無料のWeb APIを提供している会社で働いており、ポイントが水面か土地かを判断しています。私たちはそれを内部的に使用します。それはonwater.ioと呼ばれ、それはかなり単純です:緯度と経度を指定すると、get要求によって真または偽を正確に返します。水の

例:土地の がhttps://api.onwater.io/23.92323,-66.3

{ 
    lat: 23.92323, 
    lon: -66.3, 
    water: true 
} 

例:

https://api.onwater.io/42.35,-71.1

{ 
    lat: 42.35, 
    lon: -71.1, 
    water: 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)); 
関連する問題