url - Google 地球 KML - href 片段 URL 在 # 处被截断 - 无法在浏览器中打开

标签 url href kml google-earth

我有一个包含地标列表的 KML 文件。在地标描述中,我有指向我希望用户在浏览器中打开的网页的链接。 href 指向片段 URL,这意味着它有一个“#”作为分隔符,后跟一个与地标相关的参数。当我查看地标气球时,我看到了可点击的链接,但当我点击它时,它会将 URL 发送到浏览器并切断“#”和后面的参数。但是,如果我右键单击该链接,复制链接位置,然后将其粘贴到浏览器中,它就可以正常工作……不过我想避免那些额外的步骤。

链接如下所示:mywebsite/directory#12345678 但它在浏览器中打开是这样的:mywebsite/directory 这是行不通的。

通过一些搜索,我看到 # 用于启用飞到功能(见下文)。是否有解决方法或修复程序,以便我可以让 google earth 将完整的片段 URL 发送到浏览器,而不切断 # 和参数?

--来自谷歌地球开发组

通过使用元素指定的其他行为 KML 支持在元素中使用两个属性:href 和类型。

anchor 元素包含指定 URL 的 href 属性。

如果 href 是 KML 文件并具有 .kml 或 .kmz 文件扩展名,Google 地球会在用户单击该文件时直接加载该文件。如果 URL 以 Google 地球未知的扩展名(例如 .html)结尾,则该 URL 将发送到浏览器。

href 可以是片段 URL(即带有 # 符号后跟 KML 标识符的 URL)。当用户单击包含片段 URL 的链接时,默认情况下浏览器会飞到 ID 与片段匹配的功能。如果 Feature 具有 LookAt 或 Camera 元素,则从指定的视点查看 Feature。

可以通过将以下三个字符串之一附加到片段 URL 来进一步指定行为:

•;flyto(默认)- 飞到要素 •;balloon - 打开地物的气球但不飞向地物 •;balloonFlyto - 打开地物的气球并飞向地物

如果有任何想法、建议或解决方法,我将不胜感激!

最佳答案

如果目标 URL“mywebsite/directory”生成的 HTML 文档的目标 ID 使用适当的 anchor (例如 1234578)定义,那么通常可以通过从 Google 地球点击 KML 链接来访问它。

KML 中的 URL 转义方式可能存在问题。通过 CDATA block 将 HTML 包装在功能描述中有时会有所帮助。

此处 KML 链接的 URL 中带有“#”的效果与您预期的一样。

知识分子语言

<?xml version='1.0'?>
<kml xmlns='http://www.opengis.net/kml/2.2'>
<Placemark>
    <description>
        <![CDATA[
        Visiting a linked resource.
        See <a href="http://www.w3.org/TR/html401/struct/links.html#h-12.1.1">reference</a>
        ]]>
    </description>
</Placemark>
</kml>

目标 HTML links.html

<html>
...
<h3><a name="h-12.1.1">12.1.1</a> Visiting a linked resource</h3>
...
</html>

无论网络浏览器配置为 Google 地球的外部还是内部,行为都可能不同。在工具/选项/常规菜单中选中/取消选中选项“在外部浏览器中显示网页结果”以查看操作是否更改。

关于url - Google 地球 KML - href 片段 URL 在 # 处被截断 - 无法在浏览器中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18845974/

相关文章:

java - URL 证书问题

javascript - 超过 15 个 KML 图层在基于 Google map API 的页面上将不可见

css - 在谷歌地图 v3 中使用 css 设计 kml 样式?

javascript - 从 url 获取 css id

Laravel Assets 与相对路径

Java Soap 向 WSDL 发出请求

Jquery UI 选项卡小部件 - Href 和 aria-controls

jQuery 超链接 - href 值?

php - 样式表未链接

android - Google Maps API 缩放以适应 KmlLayer