1

是否有将 Google 地球定位到指定位置的 KML 标签序列?

如果我启动 Google 地球,在搜索文本框中输入“休斯顿”并按 [搜索],地图将定位到德克萨斯州休斯顿。

您可以通过 KML 完成此任务吗?

如果没有,你会怎么做呢?我正在尝试从 C# 应用程序执行此操作。

谢谢!

4

2 回答 2

1

大多数基本的 KML 文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
    <name>Name of KML</name>
    <StyleMap>
    .........
    </StyleMap>
    <Folder>
    ......
    </Folder>
</Document>

如果您将<LookAt>或分配<Camera><Document>节点,则无论何时加载 KML,它都应加载该视图 - 除非另有说明(例如通过 API/COM)

因此,您的 KML 应如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
    <name>Name of KML</name>
    <LookAt>
    ..........
    </LookAt>
    <StyleMap>
    .........
    </StyleMap>
    <Folder>
    ......
    </Folder>
</Document>
于 2013-01-18T21:25:58.340 回答
0

我假设您正试图以 KML 文件中的许多点/特征为中心?

(据我所知)无法通过 KML 定义初始地图设置。也就是说,Google Earth 5.0 支持 Tours,并且使用 FlyTo 元素可以实现以某个位置为中心的目标,但我不相信无论如何可以在没有 JavaScript 或插件的情况下自动播放播放列表(您需要这样做)这在 KML 中似乎否定)。

我知道 Google Maps API 会自动居中并缩放加载的 KML 文件(任何人都可以评论 Google Earth 是否也这样做?)。我没有尝试过,但我很好奇是否有办法使用文件夹来利用这种行为。如果(以及一个很大的如果):

  1. Google 地球在加载的 KML 文件上居中/缩放,以及
  2. Google 地球仅对第一个或最后一个文件夹中的数据执行此操作

(我不知道这两个都是真的)

您可以尝试将您的搜索点放在一个文件夹中,然后查看地图是否跟踪到它。

很抱歉,此回复的整个第二部分都是一个疯狂的猜测,但我现在无法对其进行测试,并认为它可能值得一试。如果我押注它,我的答案将是仅靠 KML 无法完成。测试上面的 hack 很容易,如果你没有机会,我今晚晚些时候应该有时间尝试一下并发布一个附录。

于 2013-01-15T16:55:25.970 回答