1

在 GE 插件 API GEHelper.cs 中有一个函数 FlyToObject。由于我无法让 kml 将我带到地标,我想我会使用 API 调用。

FlyToObject 所需的参数是:“动态 ge”、“动态特征”

我坚持“功能”论点是什么。描述说“api对象”。我不确定指的是哪个 api 对象或如何创建它。

我想要做的是自动(在加载文件时)“飞到”我的 kml 文件中的地标。

如果有人知道如何用 KML 做我所要求的,那就太好了。这是我正在加载但不起作用的 KML 文件。这是 Google 的示例文件之一。

<kml xmlns="http://www.opengis.net/kml/2.2">
    <Placemark>
      <name>300m straight down</name>
      <Camera>
        <longitude>-122.4783</longitude>
        <latitude>37.812</latitude>
        <altitude>300</altitude>
        <heading>0</heading>
        <tilt>0</tilt>
        <roll>0</roll>
        <altitudeMode>absolute</altitudeMode>
      </Camera>
    </Placemark>
</kml>

谢谢!

4

1 回答 1

0

如果您将 Google 地球加载到您自己的网页中,您可以通过 javascript 访问 GE API。因此,如果要设置某个视图,请使用以下代码

      // Create a new LookAt.
      var lookAt = ge.createLookAt('');

      // Set the position values.
      lookAt.setLatitude(36.584207);
      lookAt.setLongitude(-121.754322);
      lookAt.setRange(5000.0); //default is 0.0

      // Update the view in Google Earth.
      ge.getView().setAbstractView(lookAt);

更高级:如果您使用自己的地标加载自定义 kml 文件。在您的 kml 文件中将它们分配为 id

      <Placemark id="uniqueId">

然后,一旦加载,使用此代码

       placemark = ge.getElementById(uniqueId);
       if (placemark == null) {
            return false;
       } else if (placemark.getAbstractView()) {
            ge.getView().setAbstractView(lastViewLoaded);
      }
于 2012-09-21T01:29:36.360 回答