2

この問題は約2日間私を悩ませてきましたが、Googleは私がこれを理解するのを助けていません。基本的に、以下のコードはバルーン内のテキストを定義する必要があります。残念ながら、それはそのようには機能していません。GEがKMLで定義されたスタイルを処理できない場合、フォールバックのように見える結果になります。

これが、レンダリングのためにKMLをGEプラグインに直接挿入しようとした(多くの)方法の1つです。

var kmlString = '' +
'<?xml version="1.0" encoding="UTF-8"?>' +
'<kml xmlns="http://www.opengis.net/kml/2.2">' +
'  <Document>' +
'    <Style id="sitegeom">' +
'      <BalloonStyle>' +
'       <text>' +
'           <![CDATA[' +
'           this is<br>a test' +
'           ]]>' +          
'       </text>' +
'      </BalloonStyle>' +
'    </Style>' +
'  </Document>' +
'</kml>';

var kmlObject = $wnd.ge.parseKml(kmlString);
$wnd.ge.getFeatures().appendChild(kmlObject);

このスニペットのベースとなるコードは、GEドキュメントから直接取得されました。図に行きます。誰かアイデアがありますか?

4

2 に答える 2

2

後で追加するKMLドキュメントは、別のKMLドキュメントで最初に定義した#sitegeom IDにアクセスできない可能性があり、範囲内ではありません。

別のファイルにスタイル定義を配置して、GoogleEarthのドキュメントの指示に従ってください。

スタイル定義が同じファイル内にある場合は、スタイルIDの前に#記号を付けます。スタイル定義が外部ファイルにある場合は、要素に完全なURLを含めます。

例えば:

<styleUrl>http://www.example.com/path/to/your/style.kml#sitegeom</styleUrl>
于 2011-05-18T02:53:17.690 に答える
1

質問は私にはそれほど明確ではないかもしれませんがPlacemark、KMLで記述し、次のstyleUrl ようにスタイルを定義する必要があると思います。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <Style id="sitegeom">
      <BalloonStyle>
       <text>
           <![CDATA[
          this is<br>a test
           ]]>          
       </text>
      </BalloonStyle>
    </Style>
    <Placemark>
        <Point>
            <coordinates>104.30000001,52.283333343333</coordinates>
        </Point>
        <styleUrl>#sitegeom</styleUrl>
    </Placemark>
  </Document>
</kml>

それは正しい考えですか?

于 2011-05-11T19:54:29.417 に答える