Как получить значки меток из файла kml в MKMapView? - PullRequest
0 голосов
/ 20 марта 2012

В моем ГИС-приложении я хочу присвоить свои значки / местоположения пользовательским значкам. Фактически я хочу использовать значки, ссылки на которые находятся в kml (я получаю метки из этого файла kml). Как "прочитать" эта информация из файла kml? Я использую KMLViewer от Apple. Пример из кмл:

<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 Ответ

1 голос
/ 20 марта 2012

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, добавив поддержку значков меток. Затем, когда у вас есть URL-адрес значка, должно быть легко передать его в mapkit вместо значка по умолчанию. Удачи!

...