-3

试图做简单的事情,但似乎有些东西把它扔掉了。只想从网页加载 KML 文件。

因此,我在 Google 地球中制作了一个非常简单的 KML 文件,上面有一个地标,将其保存并上传到我们的定向运动俱乐部网站(如果有什么不同,则托管在 GoDaddy 上)。然后,我从KML Layers网页复制了 html 代码并将其加载到我的网站上并更改了关键代码 - 工作正常。

接下来我所做的就是更改纬度/经度位置值,然后列出我自己的 kml 文件、完整 URL、.. 它会拉出一张地图,居中,但没有地标。确认!

我已经阅读并想知道是否需要在服务器端做一些事情来读取 KML?由于它是 GoDaddy 主机,因此如果这是问题,我无法控制它。

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>Test1</name>
    <Style id="s_ylw-pushpin">
        <IconStyle>
            <scale>1.3</scale>
            <Icon>
                <href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>
            </Icon>
            <hotSpot x="20" y="2" xunits="pixels" yunits="pixels"/>
        </IconStyle>
    </Style>
    <Placemark>
        <name>testmark</name>
        <styleUrl>#s_ylw-pushpin</styleUrl>
        <Point>
            <gx:drawOrder>1</gx:drawOrder>
            <coordinates>-73.20975393157571,44.46282408596932,0</coordinates>
        </Point>
    </Placemark>
</Document>
</kml>

如前所述,我只是使用来自 KML 图层网页的完全相同的文本,并将位置更改为我的纬度/经度(工作),但从未找到 kml 文件。"... var ctaLayer = new google.maps.KmlLayer({ url: " http://www.gmoclub.org/kml/8gove3.kml ", map: map ..."

也尝试过几种浏览器。IE 使用无法清除 Active X 控件的消息栏阻止它,Chrome 和 Firefox 显示空白地图。

当我尝试了几个 jsfiddle 选项时,添加 KML 链接时总是失败。

我在完整链接上做错了什么?!有什么概念吗?很抱歉成为这样的人,但是......它发生了。

4

2 回答 2

0

所以答案是双重的,并且与 MIME 类型和完全公共的 URL 相关。

  1. MIME 类型:所以我的网站托管在 GoDaddy 上,由于您无法像在完整的 Windows 服务器上那样控制 MIME 类型,您需要添加一个 web.config 文件,我在上面提到过。添加这似乎是关键,但使用 GoDaddy,您可能需要等待 >~24 小时才能注册。一段痛苦的时期,尤其是当他们没有告诉你它正在生效时。你只需要继续尝试......谈论烦人。

  2. 完全公开的 URL:所以这个属于“你一定是在开玩笑”,因为我知道我的网站是公开的,并且 html 文件将加载并居中基本地图,但没有呈现 KML。问题是我的链接从“ https://godaddy ...”开始,而 KML 链接不需要“s”,只是“http://.ACK!我使用的脚本不知何故得到了那里有一个's',这就是工作的结束。

所以在两者之间,它是行不通的。可能已经看到了“s”,但我永远不会发现 MIME 类型问题。非常感谢各位!!

于 2017-05-23T00:40:02.093 回答
-1

KML 文件必须可公开访问(而不是密码/登录名),以便地球和地图能够访问和加载它。您提供的 URL 指向您服务器上的 404 页面......所以该文件可能不再存在,或者它不允许我访问它,因为我没有经过身份验证/登录?尝试将 KML 放在您 100% 确定是公开的位置(测试通过隐身标签访问它)。

正如评论中提到的 JasonM1,您还需要确保在提供的文件上正确设置了 MIME 类型。如果您将文件放在公开的地方,但继续获取原始 XML 而不是下载 KML 文件,请检查 MIME 类型设置。

如果您真的只想在 Google 地图中添加一个点,使用 Maps API 选项添加标记可能会更容易。

哦,当我将它直接复制到地球时,您提供的示例 KML 看起来和工作正常。

于 2017-05-18T23:28:35.713 回答