0

数百の目印がすべて 1 つのフォルダに入っています。ラベルが特定の高度以下にのみ表示されるようにしようとしています。(目印は、ArcGIS からレイヤーをエクスポートすることによって作成されました。高度は、レイヤーの座標系で使用される単位 (この場合はフィート) で指定する必要があると思います。間違っている場合は修正してください。) 、<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>、ファイルがエクスポートされたときに生成され、ラベル スタイルを指定するコードがあります。しかし、その部分を削除<scale>してもしなくても、効果はないようです。そのコードは次のとおりです。

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

構文に関して何か間違っているのではないかと思いますが、数日前まで KML の経験がまったくなかったので、何が問題なのかわかりません。なぜこれが機能しないのかについてのアイデアに感謝します。

4

1 に答える 1

0

リージョンで Lod (詳細レベル)を定義する必要があります。そうしないと、常に表示されます。

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

minLodPixelsは領域のサイズを定義します。画面上のこの最小ピクセル数よりも小さい場合、領域は表示されません。

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

また、LabelStyleは Region 内では無効です。それは<Style>要素に表示されなければなりません。KML が期待どおりに動作しない場合、10 回中 9 回は構文が間違っています。KML バリデーターを使用して検証してみてください。

于 2013-06-01T00:59:24.900 に答える