Android 将国家边界绘制为多边形
我正在使用谷歌地图API(v2)开发一个Android应用程序。我确实想显示国家边界,但不想显示国家名称或任何其他信息(静音地图)。应用程序的目的是创建地理游戏 考虑到这一点,如文档中所述,我首先考虑将每个国家的边界绘制为线(使用)。于是,我在谷歌上搜索了一下,找到了一个已经完成的。它是KML格式的,很容易导入到Google Earth应用程序和Google地图,但我一直找不到Android的导入方法 KML文件中的国家的格式与以下格式类似(以csv形式下载),以防该国家只需要表示一个多边形:Android 将国家边界绘制为多边形,android,google-maps-api-2,Android,Google Maps Api 2,我正在使用谷歌地图API(v2)开发一个Android应用程序。我确实想显示国家边界,但不想显示国家名称或任何其他信息(静音地图)。应用程序的目的是创建地理游戏 考虑到这一点,如文档中所述,我首先考虑将每个国家的边界绘制为线(使用)。于是,我在谷歌上搜索了一下,找到了一个已经完成的。它是KML格式的,很容易导入到Google Earth应用程序和Google地图,但我一直找不到Android的导入方法 KML文件中的国家的格式与以下格式类似(以csv形式下载),以防该国家只需要表示一个多边形:
Andorra,"
<Polygon>
<outerBoundaryIs>
<LinearRing>
<coordinates>
1.78172,42.569962 1.723611,42.509438 1.445833,42.601944 1.78172,42.569962
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>"
我本可以让这个解决方案奏效,但因为我想要更多的功能,比如只画一些大陆,所以这个解决方案是不够的 因此,最后,我认为最好(也更容易理解)将KML文件转换为具有以下结构的XML文件(并且具有强大的Python基础,认为XML非常容易解析):
<continent name="Europe">
<country name="Andorra">
//As many polygons as necessary
<poligon1>
//Coordinates go here
</poligon1>
<poligonN>
//Coordinates go here
</poligonN>
</country>
</continent>
//尽可能多的多边形
//坐标在这里
//坐标在这里
我已经知道如何将KML转换为XML,但是Android中有很多解析器,比如DOM、SAX、XMLPull…:
- 哪一个最适合这些情况?(KML文件大小为850kB)
- 你能提供一些例子/提示,告诉我如何遍历一个大陆上的所有多边形吗
// Instantiates a new Polygon object and adds points to define a rectangle
PolygonOptions rectOptions = new PolygonOptions()
.add(new LatLng(37.35, -122.0),
new LatLng(37.45, -122.0),
new LatLng(37.45, -122.2),
new LatLng(37.35, -122.2),
new LatLng(37.35, -122.0));
myMap.addPolygon(rectOptions);
<continent name="Europe">
<country name="Andorra">
//As many polygons as necessary
<poligon1>
//Coordinates go here
</poligon1>
<poligonN>
//Coordinates go here
</poligonN>
</country>
</continent>