iphone - 如何从MKMapView中的kml文件获取地标图标?

标签 iphone ios mkmapview kml

在我的 GIS 应用程序中,我想为我的图钉/位置提供自定义图标。事实上,我想利用链接位于 kml 中的图标(我从该 kml 文件中获取地标)。如何“读取”来自 kml 文件的此信息?我正在使用 Apple 的 KMLViewer。 kml 中的示例:

<Placemark>
     <name>ATM</name>
     <description>.........Info..........</description><Style>
    <IconStyle>
        <Icon>
            <href>http://www.*****.com/images/categories/atm.png</href>
        </Icon>
    </IconStyle>        
</Style><Point><coordinates>19.8167932033539,41.3254571132609</coordinates></Point></Placemark>

最佳答案

KMLViewer 使用 NSXMLParser 解析 KML 文件,因为它是有效的格式化 XML 格式。首先研究好 NSXMLParser 以及如何实现它的委托(delegate)以从 XML 中提取数据。 KMLViewer 在 KMLParser.m 中也执行此操作,但没有实现 IconStyle 元素的保存。然而,扩展应该不是很困难(并且是一个很好的研究!)

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
                                        namespaceURI:(NSString *)namespaceURI
                                       qualifiedName:(NSString *)qName
                                          attributes:(NSDictionary *)attributeDict

KMLParser 的方法并为 IconStyle 添加新的处理程序。您必须扩展 KMLStyle 类,添加对地标图标的支持。然后,当您获得图标的 url 时,应该很容易将其提供给 Mapkit 而不是默认图标。祝你好运!

关于iphone - 如何从MKMapView中的kml文件获取地标图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9788800/

相关文章:

ios - CALayer 上的 shouldRasterize 会在图层变换之前或之后导致栅格化吗?

iphone - iOS - 使用 MKMapView 弹出和推送 View Controller 时意外崩溃

iphone - 用于将整数添加到nsmuatablearray FMDB/EGODB的编译器指令防御性编程

iphone - xCode4 不会在模拟器中运行应用程序

ios - UICollectionView 的弹性 header

ios - 在哪里可以找到有关 iOS 应用程序中安全网络的教程?

iphone - 如何给MKMapView异步添加注解?

ios - Xcode/Objective-C - 通过prepareForSegue传递数据

iphone - 将 UIImagePickerController 用于多个 uiimageview。 (使用多个UIButton)

iPhone 不显示多个背景?