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

时间:2012-03-20 14:32:45

标签: 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>

1 个答案:

答案 0 :(得分:1)

KMLViewer使用NSXMLParser来解析KML文件,因为它是有效的格式化XML格式。首先研究好NSXMLParser以及如何实现其委托以从XML中提取数据。 KMLViewer也在KMLParser.m中执行此操作,但未实现IconStyle元素的保存。然而,扩展

应该不是很困难(而且是一项非常好的研究!)
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
                                        namespaceURI:(NSString *)namespaceURI
                                       qualifiedName:(NSString *)qName
                                          attributes:(NSDictionary *)attributeDict

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