-1

我有一个包含所有国家和多边形的 KML 文件。我正在尝试创建一个获得经纬度并使用此 KML 检测属于哪个国家/地区的应用程序。我尝试了 SimpleKML 和 KMLViewer,但没有成功。kml 结构为:

   <Document>
<Folder>
    <Folder>
        <name>A -</name>
        <Placemark>
            <name>Afghanistan</name>
            <description></description>
            <Style>
                <PolyStyle>
                    <color>aaffffff</color>
                    <colorMode>random</colorMode>
                </PolyStyle>
            </Style>
            <Polygon>
                <outerBoundaryIs>
                    <LinearRing>
                        <coordinates>
65.62729644775391,37.33319854736328,0 65.64692687988283,37.45888137817383,0 
...
...

coordinates>
                    </LinearRing>
                </outerBoundaryIs>
            </Polygon>
        </Placemark>
        <Placemark>
            <name>Albania</name>
 ..
 ..
 ..

1)使用xml解析器并将数据保存在本地数据库中会更好吗?2)是否有任何函数可以确定给定的纬度/经度是哪个多边形?

谢谢

4

1 回答 1

0

使用 NSXMLParser 解析应该很容易,查找名称并将它们与坐标相关联。更有趣的部分是测试多边形是否包含一个点。

这是一篇备受推崇的 SO 文章,看起来它在某种程度上借鉴了这篇 wikipedia 文章。您要做的是构建一个多边形集合,并枚举它们以测试每个多边形是否包含一些给定的坐标。

要考虑的另一件事是完全跳过解析和多边形测试并使用谷歌地理编码API。 本节专门讨论从纬度和经度获取地址信息(包括国家/地区)。

于 2013-02-10T01:46:20.770 回答