扩展iOS KMLViewer示例以处理KML NetworkLink元素

我正在开发一个iOS应用程序,它通过MKMapView显示KML数据。

Apple的KMLViewer示例应用程序让我开始了。 不幸的是,我使用的KML数据很大程度上依赖于通过NetworkLinkLinkhref KML元素的链接文件,而KMLViewer的解析器不能处理这些。

我可能想知道如何添加这样的支持,但在我走这条路之前,我想知道是否有其他人已经做过这个,或者是否有比KMLViewer更好的起点。

我看过Simple KML ,但它似乎也不支持NetworkLink

以下是我的调查结果:

  1. 我首先扩展了KMLViewer示例以支持我需要的其他元素。 该示例并不适合这样:它不像SAX风格的解析器那样组织,如果你想为它添加更多的东西,那么简单的状态机真的需要大修。
  2. 接下来我尝试了Simple KML库。 它很容易使用,但解析我需要解析的KML文件需要3500毫秒,这比我认为可接受的时间长至少3000毫秒。 此外,Simple KML不支持我需要的所有元素和属性,因此如果我想使用它,我需要扩展它。
  3. 所以,我最后只使用了TBXML ,它易于使用,并且在不到100毫秒的时间内解析了文件。