如何在没有面向公众的Web服务器的情况下使KML / KMZ文件显示在Google地图上?

评论

具有讽刺意味的是,您已连接到Internet。您如何获得Google地图?

“没有面向公众的服务器”是指kml必须位于本地计算机上,还是不想打扰安装/配置/购买公共网站?而且,您要制作的自定义地图是否需要别人或仅您自己看到?

情况是“我可以上网,但互联网不能上网。”在这种情况下,您将无法在Google Maps API中使用KML文件支持。

我认为display-kml.appspot.com是另一个选择。

您可以将KML / KMZ下载到Google云端硬盘,它本身支持可视化docs.google.com/file/d/0B9sBXp66G86xWmlRbkZiYlRNdmc/edit

#1 楼

要在Google地图中打开KML或KMZ文件,请将以下前缀附加到KML文件的在线链接:

http://maps.google.com/maps?q=

通常,我将KML或KMZ放入我的保管箱,然后将公共链接复制/粘贴到上述代码段的末尾。然后,我可以将该链接通过电子邮件发送给想要的人,或者将其在线发布到某个地方。我还使用Google文档存储了KML,并在我的网站上使用了“链接”页面来分发链接。

示例:

哈维山远足:

http://maps.google.com/maps?q=http://dl。 dropbox.com/u/359140/KML/HarveyMountainHike.kmz

评论


这种方法似乎不再起作用。点击以上链接后,我将在搜索框中显示带有您的保管箱链接的google maps。

–德里克·格里尔(Derek Greer)
2014-09-30 14:51

不过,很快将不赞成在maps.google.com上使用KML:support.google.com/maps/answer/41136?hl = zh-CN

–科恩。
2015年2月4日,12:55



我发现您只需单击Google云端硬盘中的共享链接,KMZ便会自动加载到Google地图中,而无需其他任何扩展。在Chrome和Explorer中测试。

–埃米尔·布伦达奇(Emil Brundage)
15年3月23日在17:27

顺便说一句,谷歌地图已破坏/弃用了此功能。

–hendry
15年4月30日在1:40

2017年4月更新:您可以将KML文件直接导入Google Maps的“我的地图”功能,它将以Google Maps格式显示您的所有KML数据。

–保达
17年4月19日在21:14

#2 楼



我经常使用的技巧之一是将KML文件放在我的公共DropBox文件夹中(找到某人拥有一个帐户来推荐您;它将为您和他们俩增加250Mb的收入),然后将该网址粘贴到Google Maps中,以便在短期内可视化并与他人共享。您可以选择创建新的Google“我的地图”地图,然后将KML,KMZ或GeoRSS导入其中。完成后,您可以使用标准的“我的地图”工具共享生成的地图。

您还可以使用Google文档存储和与他人共享KML文件。我推荐的技术是:


创建一个文件夹并将其标记为公共访问。世界
转到下载链接,将其复制并粘贴到Google Maps搜索框中

我想知道Google允许通过Google Docs交互式协作编辑KML文档多长时间?现在那太酷了...

评论


需要注意的一件事:如果更改文件(并且可能包括具有相同文件名的“另存为”),Dropbox将更改链接中的文件ID(哈希部分)。定期打开和保存(例如,在文本编辑器中)似乎没有问题。

– heltonbiker
15年1月26日在19:09

#3 楼

您可以将KML文件上传到Google地图:


登录到您的Google帐户,然后转到http://maps.google.com

点击在My Maps
上单击Create a new map

添加标题和描述
单击Import

单击Choose file,选择要上传的KML,然后点击Upload from file










现在您已经完成了:)

评论


有趣的是,这是最直接解决该问题的答案。

–马克·博斯曼(Mark Bostleman)
14年8月5日在16:11

不适用于包含超过5 MiB的KML文件的KMZ。

–苏希
19年1月2日,12:20

#4 楼

您不能

Google:


从2015年2月开始,将在经典的Google地图(https://maps.google.com/)中创建的地图将不再从外部网站加载KML / KMZ文件。但是,我们知道KML文件是处理地理数据的一种非常有用的方法,因此我们已将KML添加到“ Google我的地图”中,并继续通过其他Google Maps API支持这种格式。我们希望这些选项之一可以满足您的需求。


https://developers.google.com/maps/support/kmlmaps

我曾经在Google地图中显示本地.kml和.kmz文件,但是现在我不能:(

评论


如您所述,支持已转移到“我的地图”上。

– MastaBaba
15年11月24日在12:52

KML文件可能不会导入所有数据,包括:具有HTML或JavaScript的信息气球,KML游览,基于时间的元素,图像和屏幕叠加层,MultiGeometries,3D模型,文件夹developers.google.com/maps/support/kmlmaps

–戴尔
17 Mar 29 '17在13:33



#5 楼

简短的答案是:您不能。在简单的旧版Google Maps网络应用程序中使用本地文件会违反浏览器的沙箱操作和相同的原产地政策。

一种选择是,尽管成本高昂,但您可以使用Google Maps Premier托管将本地文件系统上的maps-x.js与关联的KML一起使用。

另一种选择是使用现有的面向公众的Web服务器,例如Google Sites。请注意,您也许可以使用OpenLayers替代Google Maps Premier。

评论


OpenLayers(在现代浏览器中)将仅限于非文件URL,至少在Firefox中如此,但是您可以设置本地/非公共Web服务器并使用它。请注意,“沙箱”并不是您无法使用Google进行操作的真正原因:如果本地服务器上托管HTML页面,则JS应该能够从本地服务器读取文件。您只能这样做是因为Google会解析服务器端的所有文件-因此它们的服务器需要与您的服务器进行通信,而这不能。

–克里斯托弗·施密特(Christopher Schmidt)
2010年7月23日在17:15

啊,好点。我在考虑本地文件系统而不是本地httpd上的文件。

–乔恩·布林赫斯特(Jon Bringhurst)
2010年7月23日在17:19

#6 楼

https://support.google.com/mapsengine/answer/3024836

点击导入。您可以从Google云端硬盘导入CSV,TSV或XLSX文件,“我的地图”或电子表格。当前不支持KML导入。