2013-08-16 30 views
0

我想從彈出的警報彈出代碼中獲取高程值,就像我能夠獲取lat和lng的值。我試圖在數組中獲得三個值(lat,lng和海拔高度),以便以後可以使用OpenGL顯示值,但是隻有在一切工作正常的情況下,我才卡在這部分。這是我正在使用的代碼。謝謝如何返回(顯示)彈出警報的高程點。

var bounds = map.getBounds(); 
    var ne = bounds.getNorthEast(); 
    var sw = bounds.getSouthWest(); 
    var nw = new google.maps.LatLng (ne.lat(), sw.lng()); 
    var se = new google.maps.LatLng(sw.lat(), ne.lng()); 

    for(var i = 0 ; i<= (ne.lat() - sw.lat()); i+=0.01) 
{ for(var j =0 ; j<=(ne.lng() - sw.lng());j+=0.01) 
     { 
     var tmpele; //temp variable for elevation<br/> 
     lt.push(sw.lat()+i);<br/> 
     ln.push(sw.lng()+ j);<br/> 

     var d = new google.maps.LatLng((sw.lat()+i),(sw.lng()+ j)); 
       loca.push(d); 
     el.push(pospoint(loca)); 
     } } 
     alert(lt); 
     alert(ln); 

     alert(el); 

    } 
    function disp() 
    { 
    alert(el); 
    } 
    function pospoint(loca) 
    { 

    var tmp; 
    var positionalRequest = {  
       'locations': loca 
          } 
     elevationService.getElevationForLocations(positionalRequest, function(results, status) { 
      if (status == google.maps.ElevationStatus.OK) { 
        tmp=results; 
       // alert('got:'+tmp); 
       // return tmp; 
        } 
        }); 
    return tmp; 
    } 

回答

0

elevation service是異步的。你不能從中返回任何東西,你只能使用在回調函數中使用的數據(當它可用時)。

+0

謝謝..我也想知道如果那麼我需要使用OpenGL在球體上繪製所有這些值,那麼我將如何能夠將海拔數據收集到數組與lat和lng。 – user2592029

+0

正如所引用的文檔中所述,海拔服務受限於配額和速率限制。它將返回「沿路徑採樣的高程數據,允許您計算沿路線的等距離高程變化」,或者您可以單獨請求特定點(只要您遵守服務限制)即可。 – geocodezip