Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用KML文件检测国家(Xcode)_Iphone_Xml_Xcode_Parsing_Kml - Fatal编程技术网

Iphone 使用KML文件检测国家(Xcode)

Iphone 使用KML文件检测国家(Xcode),iphone,xml,xcode,parsing,kml,Iphone,Xml,Xcode,Parsing,Kml,我有一个包含所有国家和多边形的KML文件。我正在尝试创建一个应用程序,使用这个KML获取Lat&Lon并检测哪个国家属于哪个国家。我尝试了SimpleXML和KMLViewer,但没有成功。 kml结构为: <Document> <Folder> <Folder> <name>A -</name> <Placemark> <name>Afgha

我有一个包含所有国家和多边形的KML文件。我正在尝试创建一个应用程序,使用这个KML获取Lat&Lon并检测哪个国家属于哪个国家。我尝试了SimpleXML和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>
 ..
 ..
 ..

A-
阿富汗
阿芙芙芙
随机的
65.62729644775391,37.33319854736328,0 65.64692687988283,37.45888137817383,0 
...
...
坐标>
阿尔巴尼亚
..
..
..
1) 使用xml解析器并将数据保存在本地数据库上会更好吗? 2) 是否有任何函数确定给定lat/lon的多边形


谢谢

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

,这看起来有点像是借用了。您要做的是构建一个多边形集合,并枚举它们,测试每个多边形是否包含某些给定坐标


另一件需要考虑的事情是完全跳过解析和多边形测试,使用谷歌地理编码api。关于从纬度和经度获取地址信息(包括国家)。

必须是脱机应用程序。因此,没有针对lat/lon和多边形的算法?不是来自apple(afaik),而是大量的网络代码。使用光线跟踪测试进行自己的测试看起来并不可怕。听起来挺有趣的,你有什么建议?解析kml(作为xml)并将其保存为本地数据库,还是每次都进行解析?(我需要最快的方法)。关于算法我应该使用光线跟踪还是光线投射?保存解析会更快。使用文件还是数据库取决于多边形计数。我不知道哪个多边形测试更快。我认为,要让它工作起来,你已经面临了足够大的挑战,只有在你有了经验数据后才能做出性能决策是明智的。此外,如果这是一个离线应用程序,你想要快速,你为什么要解析它呢?在编译时之前进行解析,并将多边形作为浮点的文本数组发送。