2

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

これを行う方法はありますか?

ありがとう

Shubhra

4

1 に答える 1

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>
于 2012-04-15T21:21:20.580 に答える