2012-03-20 3 views
0

내 GIS 응용 프로그램에서 내 핀/locations.In 실제로 그 링크를 kml에있는 아이콘을 활용하고 싶습니다 (나는 그 kml 파일에서 placemarks를 얻습니다). 어떻게 이것을 "읽으려면" kml 파일의 정보? Apple의 KMLViewer를 사용하고 있습니다. KML에서 예 : 유효한 형식화 된 XML 형식입니다으로MKMapView의 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

KMLViewer는 KML 파일을 구문 분석 NSXMLParser를 사용합니다. 먼저 NSXMLParser을 잘 공부하고 델리게이트를 구현하여 XML에서 데이터를 추출하는 방법. KMLViewer는 KMLParser.m에서도이 작업을 수행하지만 IconStyle 요소를 저장하지 않습니다. 그러나 그것은 매우 어려운 일이 아니다해야한다 (매우 좋은 학습!) KMLParser의

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

방법을 확장하고 IconStyle에 대한 새 처리기를 추가 할 수 있습니다. 위치 표시 아이콘에 대한 지원을 추가하여 KMLStyle 클래스를 확장해야합니다. 그런 다음 아이콘의 URL을 얻었 으면 기본 아이콘 대신 mapkit에 쉽게 제공해야합니다. 행운을 빕니다!

+0

사실, 이미 KMLParser를 확장하고 IconStyle에 대한 새로운 처리기를 추가했습니다.이 모든 작업이 완료되었으며 이미 테스트를 거쳐 아이콘 URL이 확인되었음을 증명했습니다. 내 문제는 자막 클래스 인 PlacemarkAnnotation을 사용하고 있습니다. PlacemarkAnnotation은 제목, 부제, 좌표 및 아이콘의 이미지 이름을 보유하고있는 문자열 인'icon' 속성을 가지고 있습니다. atm.png라고 해봅시다. 문제는 KMLParser에서 NSLog를 사용하여 이러한 값을 얻었지만 내 mapview에 올 때 NULL이 발생한다는 것입니다. ???????? –

+0

mapKit API에 대해 잘 모릅니다. 다른 질문을 열어 볼 가치가 있습니까? – MrTJ

+0

은 'PlacemarkAnnotation' 구현을 보여줍니다. 실수가 거기에 있을까요? – calimarkus

관련 문제