2012-03-20 28 views
0

私のGISアプリケーションでは、自分のピン/場所にカスタムアイコンを与えたいと思っています。実際、リンクがkmlにあるアイコンを利用したいのです(このkmlファイルの目印を取得します)。 kmlファイルの情報?AppleのKMLViewerを使用しています。 KMLから例: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は、それが有効なフォーマットされたXML形式であるとして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を取得したら、デフォルトのアイコンの代わりにマップキットに簡単に入力する必要があります。がんばろう!

+0

あなたが言っているように、私は既にKMLParserを拡張し、IconStyleの新しいハンドラを追加しました。これはすべて完了し、既にテストされており、アイコンのURLがOKであることが証明されました。私はカスタムクラスPlacemarkAnnotationを使用しています。このクラスは、タイトル、サブタイトル、座標、さらにアイコンのイメージ名を保持する文字列である 'icon'属性を持ちます。これは' atm.png'と呼ばれます。問題は、KMLParserではNSLogを使用してこれらの値を取得することですが、マップビューになるとNULLになります。 ???????? –

+0

私はmapKit APIについてよく分かりません。おそらく別の質問を開く価値がありますか? – MrTJ

+0

はあなたの 'PlacemarkAnnotation'実装を示しています。おそらく間違いはそこにありますか? – calimarkus

関連する問題