2012-03-17 1 views
1

저는 Apple의 KMLViewer 코드를 사용하여 MKMapView에 트랙을 표시했습니다. Google 어스의 장소를 KML 파일로 저장하여 KML 파일을 만들지 만, KML 파일의 스타일 맵을 변경하지 않으면 트랙이지도에 표시되지 않습니다. KML 파일의 시작 부분에서 KMLViewer는 스타일 맵으로 인해 트랙을 표시하지 않습니다.

는 스타일 맵이다 : 나는 응용 프로그램을 실행하면 KML 파일이

<Placemark> 
    <name>Track01</name> 
    <visibility>0</visibility> 
    <styleUrl>#lineStyle11000</styleUrl> 
    <LineString> 
     <tessellate>1</tessellate> 
     <coordinates>... 

시작에서

<Style id="lineStyle0000"> 
    <LineStyle> 
     <color>ff0600ff</color> 
     <width>4</width> 
    </LineStyle> 
</Style> 
<StyleMap id="lineStyle11000"> 
    <Pair> 
     <key>normal</key> 
     <styleUrl>#lineStyle0000</styleUrl> 
    </Pair> 
    <Pair> 
     <key>highlight</key> 
     <styleUrl>#lineStyle01</styleUrl> 
    </Pair> 
</StyleMap> 
<Style id="lineStyle01"> 
    <LineStyle> 
     <color>ff0600ff</color> 
     <width>4</width> 
    </LineStyle> 
</Style> 

그리고 트랙, 트랙하지 않습니다 전혀 나타나지 않습니다. # lineStyle11000에서 # lineStyle0000까지 트랙 시작 부분에 styleUrl 태그를 변경하면 정상적으로 표시됩니다. 이것은 하나 또는 두 개의 트랙을 표시 할 때 쉽게 할 수 있지만 성가심입니다. 하나의 KML 파일에 표시 할 트랙이 10 개 또는 15 개이면 실제로 시간이 많이 걸립니다.

이 문제를 방지하는 방법이 있습니까? Google 어스에서 모든 트랙을 쉽게 관리 할 수 ​​있도록 보관하지만 앱에 넣을 때마다 파일의 텍스트를 수동으로 변경하지 않아도됩니다.

감사

답변

1

사용하고있는 해결책은 실제로 문제를 해결하지는 않지만 괜찮습니다. Google 어스는 스타일 맵을 사용하여 kml 파일을 내 보냅니다. 그러나 kml 파일을 Google 어스 KML의 출력 형식 인 GPSVisualizer으로 보내면 전체 파일을 모든 색상을 유지하면서 Apple의 KMLViewer에서 읽을 수있는 더 간단한 형식으로 변환합니다 및 라인 크기.

경찰관의 종류는 작동하지만 작동합니다.

0

당신은 자동으로 모든 styleUrls 라인

grep -v styleUrl old.kml > new.kml 

을 제거하거나 찾기를 실행하고 응용 프로그램 내에서 대체 할 파일을 편집 할 수있다.

+0

필자는 수동으로 찾기 및 바꾸기를 해왔지만, 각 트랙 라인에는 독특한 스타일을 가진 자체 스타일 맵이 있기 때문에 실제로는 속도가 향상되지 않습니다. Apple의 KML 뷰어에 대한 더 나은 대안이 있습니까? 또는 Google 어스로 KML 파일을 만들 수 있습니까? – guthook

+0

"styleURL"이있는 모든 행을 제거하면 스타일이 남아 있지 않으므로 kml이 잘로드됩니다. 파일을 열고 디스크에 다시 저장하고 Apple의 KML 코드를 계속하기 전에 해당 행을 제거하기 위해 앱을 약간 슬라이드 할 수 있어야합니다. – Craig