KML是否支持搜索功能

时间:2013-01-14 23:38:26

标签: kml google-earth

是否存在将Google地球定位到指定位置的KML标记序列?

如果我启动Google地球,请键入" Houston"在搜索文本框中按[搜索],地图位于德克萨斯州休斯顿。

你能通过KML完成吗?

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

谢谢!

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

我假设您正试图以KML文件中的多个点/功能为中心?

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

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

  1. Google地球中心/缩放已加载的KML文件,
  2. Google地球仅对第一个或最后一个文件夹中的数据执行此操作
  3. (我都不知道这是真的)

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

    我很抱歉这个回复的第二部分是一个疯狂的猜测,但我现在无法测试它并认为它值得一试。如果我打赌它,我的答案就是单靠KML无法实现。测试上面的黑客很容易,如果你没有机会,我今晚应该有时间尝试并发布一个附录。