2013-05-31 6 views
0

하나의 폴더에 수백 개의 위치 표시가 있습니다. 라벨을 특정 고도 아래에만 표시하려고합니다. (아이콘은 ArcGIS에서 레이어를 내보내는 것으로 만들어졌으며, 레이어의 좌표계에서 사용하는 단위 (이 경우 피트 단위)로 고도를 지정해야한다고 가정합니다. 그러나 틀린 경우 수정하십시오.) 그러나 , 나는 <Region> 태그로 아무것도하지 않는 것 같습니다; 라벨은 모든 고도에서 행복하게 나타납니다. 다음은 내가 사용하고있는 코드입니다. 아무도 그것과 함께 잘못 말할 수 있습니까?KML의 Region 태그에 대한 구문

<Document id="DocumentName"> 
    <name>NameGoesHere</name> 
    <Snippet></Snippet> 
    <Folder id="NameOfTheFolder"> 
    <name>NameGoesHere</name> 
     <Region id="highAltitude"> 
     <LatLonAltBox> 
      <north>40</north> 
      <south>37</south> 
      <east>-74</east> 
      <west>-79</west> 
      <minAltitude>50000</minAltitude> 
      <maxAltitude>500000</maxAltitude> 
     </LatLonAltBox> 
     <LabelStyle id="styleNameHere"> 
      <scale>0</scale> 
     </LabelStyle> 
     </Region> 
    <Snippet></Snippet> 
       ... 
    <placemark> ... </placemark> 
    <placemark> ... </placemark> 
    <placemark> ... </placemark> 
       ... 
    </Folder> 
</Document> 

이 모든 코드의 포인트는 50,000피트 이상의 고도에서 라벨을 억제하는 것입니다,하지만 종류의 아무것도하지 않는다. 코드 끝 부분에있는 </Folder> 태그 다음에 </Document> 태그 앞에, ​​파일을 내보낼 때 생성되는 코드가 있으며 레이블 스타일을 지정합니다. 그러나 그 부분을 삭제했는지 여부에 상관없이 아무런 효과가없는 것으로 보입니다. 다음과 같이 그 코드는 다음과 같습니다

<Style id="Stylename"> 
    <IconStyle> 
    ... 
    </IconStyle> 
    <LabelStyle> 
    <color> ... </color> 
    <scale> ... </scale> 
    </LabelStyle> 
    <PolyStyle> 
    ... 
    </PolyStyle> 
</Style> 

내가 전혀 며칠 전까지 KML과 경험을 했어 때문에, 난, 내가 구문의 측면에서 잘못 여기서 뭔가를하고 있어요 의심하지만, 문제가 무엇인지 확실하지 않습니다. 왜 이것이 작동하지 않는지에 대한 어떤 아이디어라도 고맙게 생각합니다.

답변

0

LOD (Level of Detail)을 지역에 정의해야합니다. 그렇지 않으면 항상 나타납니다.

<Region id="highAltitude"> 
    <LatLonAltBox> 
    ... 
    </LatLonAltBox> 
    <Lod> 
    <minLodPixels>256</minLodPixels> 
    </Lod> 
<Region> 

minLodPixels는 그 영역이 도시되지 않은 스크린의 화소의 최소 수보다 작은 경우, 영역의 크기를 정의한다.

https://developers.google.com/kml/documentation/kmlreference#lod

또한, 라벨 스타일은 지역 내에서 유효하지 않습니다. 이는 <Style> 요소에 표시되어야합니다. KML이 10 회 중 9 번을 예상 한대로 동작하지 않으면 구문이 잘못되었습니다. KML validator을 사용하여 유효성을 검사합니다.

+0

고마워요! 나는 이것을 알아 냈다. 문제가 해결되었습니다. – Mhoram