2012-04-13 9 views
2

Google Earth APIを使用していて、初めてです。私はkmlを使用して目印をマークし、これにクリックイベントを追加しました。この目印の緯度と経度の値を取得したいと思います。私はgetLatitude()getLongitude()関数を使用していますが、値は正確ではありません。私はkmlで定義されているものとまったく同じ値が必要です。私の得点はポイントによって異なります。目印の緯度と経度の値を取得する - Google Earth

これにはどのような方法がありますか?

Shubhra

+0

は、使用しているコードの一部を示し、両方のJavaScriptとKML – lifeIsGood

答えて

3

おかげで私はあなたのために、次のサンプルを持っています。それは、kmlファイルを取り出し、クリックイベントを目印に付けます。警告された緯度と経度の値は、kmlファイルとまったく同じです。それが役に立てば幸い。

<html> 
<head> 
<title>sample.html</title> 
<script src="http://www.google.com/jsapi?key=ABQIAAAAwbkbZLyhsmTCWXbTcjbgbRSzHs7K5SvaUdm8ua-Xxy_-2dYwMxQMhnagaawTo7L1FE1-amhuQxIlXw"></script> 
<script type="text/javascript"> 
    var ge; 
    google.load('earth', '1'); 

    function init() { 
    google.earth.createInstance('map3d', initCB, failureCB); 
    } 

    function initCB(instance) { 
    ge = instance; 
    ge.getWindow().setVisibility(true); 

    var href = 'http://code.google.com/' 
       + 'apis/earth/documentation/samples/kml_example.kml'; 

    google.earth.fetchKml(ge, href, function(kmlObject) { 
      if (kmlObject) 
      { 
       ge.getFeatures().appendChild(kmlObject); 
       google.earth.addEventListener(kmlObject, 'click', function(event) { 
       var placemark = event.getTarget(); 
       alert('Latitude :' + placemark.getGeometry().getLatitude() 
        +' Longitude :' + placemark.getGeometry().getLongitude()); 
       }); 
      } 
      if (kmlObject.getAbstractView() !== null) 
       ge.getView().setAbstractView(kmlObject.getAbstractView()); 
    });     
    } 

    function failureCB(errorCode) { 
    } 
    google.setOnLoadCallback(init); 
</script> 

</head> 
<body> 
    <div id="map3d" style="border: 1px solid silver; height: 400px; width: 600px;"> </div> 
</body> 
</html> 
+1

は私のために働いたこと、本当にありがとうございました、まだいくつかの問題があります。時にはそれはまったく同じではない価値を与えます。たとえば、kmlの経度が27.19737の場合、placemark.getGeometry()。getLongitude()は27.1973799999999995を返します。値は四捨五入後も同じですが、まだ正確ではありません。これはすべてではない場合もあります。 – Shubhra

関連する問題