在Maps API V2中导入KML

5
我有多个在Google Earth中绘制并包含不同路线的KML文件。现在我正在尝试使用Maps API V2在我的Android项目中显示它们。
是否有现成的库可供导入KML文件到您的Android项目并在地图上显示?
我在Stack Overflow上找到了一些代码(如何使用kml文件在地图上画路径?),但那不是一个库。
如果没有可用的库,我将从头开始构建此功能。

Mark,你做到哪一步了?你在开发什么类型的应用? - danny117
请查看http://devaarapp.nl/。该网站是荷兰语的,在线演示是iOS版本,但安卓应用程序基本相同。 - Mark Molina
2个回答

0

目前我假设没有公共库可以为我们完成这项工作,因此我将使用谷歌的代码,在解析我的KML文件中的数据后,向我的地图添加折线和多边形。

如果找到库,我会更新这个答案。

创建折线和多边形:

// Instantiates a new Polyline object and adds points to define a rectangle
PolylineOptions rectOptions = new PolylineOptions()
        .add(new LatLng(37.35, -122.0))
        .add(new LatLng(37.45, -122.0))  // North of the previous point, but at the same longitude
        .add(new LatLng(37.45, -122.2))  // Same latitude, and 30km to the west
        .add(new LatLng(37.35, -122.2))  // Same longitude, and 16km to the south
        .add(new LatLng(37.35, -122.0)); // Closes the polyline.

// Set the rectangle's color to red
rectOptions.color(Color.RED);

// Get back the mutable Polyline
Polyline polyline = myMap.addPolyline(rectOptions);

这是我上面推荐的内容的第二部分。使用Simple KML或其他库来解析您的KML。 - Matthew
好的。我用PHP解析了我的KML文件。这个脚本输出一个包含所有纬度和经度的二维数组。应用程序只需要创建折线。感谢您提供的所有信息。 - Mark Molina
还有用于解析KML的PHP库 - 这是您正在使用的吗?没有必要'手动'执行此操作 - Matthew
不需要使用任何库。只需用几行代码就可以完成。只是想知道是否有将解析和地图显示结合在一起的库。 - Mark Molina
有关点击监听器或事件的任何想法吗? - Andrew Indayang

0

关于Maps API V2中KML库的更新,这里有一个Google Maps KML导入工具的beta版本可供使用。

它是Google Maps Android API实用库的一部分。根据文档,它允许从流中加载KML文件。

KmlLayer layer = new KmlLayer(getMap(), kmlInputStream, getApplicationContext());

或本地资源

KmlLayer layer = new KmlLayer(getMap(), R.raw.kmlFile, getApplicationContext());

在创建KmlLayer之后,调用addLayerToMap()将导入的数据添加到地图上。
layer.addLayerToMap();

有什么想法设置点击监听器吗? - Andrew Indayang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接