我已将 KML 文件加载到 Android 设备上。将该 KML 文件的叠加层加载到 Google 地图中的最简单机制是什么?我不想将 KML 文件上传到网络,而是希望在本地打开它。
4 回答
要在不编写应用程序的情况下将kml 加载到 Android 上的 Google 地图中,您可以在某处创建一个带有指向 kml 文件的 geo-uri 链接的小 html 文件,然后在任何 Android 网络浏览器中单击该链接。
例如:假设您的 kml 文件位于/sdcard/overlay.kml然后您编写一个 geo-uri 链接,如下所示:
<html>
<head><title>Example KML link page using a geo-uri</title></head>
<body>
<a href="geo:0,0?q=file:///sdcard/overlay.kml">overlay.kml</a>
</body>
</html>
单击该链接将启动 Maps,然后 Maps 将尝试加载您的 kml。
(显然,如果您的 kml 文件位于 Web 服务器上,则 file:// 部分可以替换为 http:// 服务器名)
但请注意,Android 版本的地图似乎无法处理与桌面版本(或桌面 Google 地球)相同的版本/范围的 kml 元素。
我无法说出较旧的 Android 版本,但在 Nexus 4 和 Android 4.2.2 上这很容易:
- 将 KML 文件传输到您的 Android 设备并通过任何方式(USB、电子邮件、PAW 应用程序......)将其存储在您的 SD 卡上
- 使用一些文件管理器应用程序(例如Solid Explorer、Astro等)在文件系统中找到文件并单击它。
- Google Earth 将弹出,KML 文件将显示在地球卫星图像的顶部。
在 Earth 中,您还可以点击任何 KML 对象来显示相关信息(如果有的话存储在 KML 文件中)。
假设您可以在 OpenStreetMap 而不是 Google 地图上显示您的 KML,您还可以使用 osmdroid + OSMBonusPack ( https://github.com/MKergall/osmbonuspack )。
取决于你想做什么:
您可以使用演示应用程序“OSMNavigator”在地图上加载和显示您的 KML 文件(KML 可以是本地的或来自 url)。
或者,您可以在应用程序中使用 OSMBonusPack 库来显示您想要的 KML 内容。
File KML = new File("/sdcard/doc.kml");
Intent i = getPackageManager().getLaunchIntentForPackage("com.google.earth");
i.setDataAndType(Uri.fromFile(KML), "xml");
startActivity(i);
来源:http ://enladodelbien.blogspot.com/2015/06/kmlkmz-to-google-earth.html