2012-03-14 23 views
1

あなたが推測しているように、それは私のために働いていない、と私は決定的な答えや回避策を探してきました。私はマップでサポートされていないことを知っています。ここでkml gx:Track ExtendedDataの表示はGoogle Earthプラグインで機能しますか?

がkml例です。

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> 
<Document> 
    <name>Track</name> 
    <open>1</open> 
    <Schema name="Info" id="InfoId"> 
    <gx:SimpleArrayField kml:type="string" kml:name="MyField"> 
     <displayName>Value</displayName> 
    </gx:SimpleArrayField> 
    </Schema> 
    <Folder> 
    <name>Track History</name> 
    <open>1</open> 
    <Placemark> 
     <name>Track</name> 
     <gx:Track> 
     <extrude>1</extrude> 
     <altitudeMode>absolute</altitudeMode> 
     <when>2012-03-12T05:59:09Z</when> 
     <when>2012-03-12T05:59:11Z</when> 
     <when>2012-03-12T05:59:13Z</when> 
     <gx:coord>-76.1558297472738 43.02432853192255 1544.41929539293</gx:coord> 
     <gx:coord>-76.136216188444 43.07112543504023 1454.468177223578</gx:coord> 
     <gx:coord>-76.1190908056531 43.10944870095626 1456.513482289223</gx:coord> 
     <ExtendedData> 
      <SchemaData schemaUrl="#InfoId"> 
      <gx:SimpleArrayData kml:name="MyField"> 
       <gx:value>one</gx:value> 
       <gx:value>two</gx:value> 
       <gx:value>three</gx:value> 
      </gx:SimpleArrayData> 
      </SchemaData> 
     </ExtendedData> 
     </gx:Track> 
    </Placemark> 
    </Folder> 
</Document> 
</kml> 

地球のデスクトップクライアントで期待どおり、この表示されます。しかし、プラグインを使用してブラウザベースのアプリケーションにロードすると、MyFieldExtendedDataInfoIdスキーマに関連付けられています)は、トラックポイントに関連付けられたバルーンには表示されません。

私はので、私はトラックポイントのためunscrubbedコンテンツと新しいバルーンを作成することができます願って、balloonopeningイベントにイベントハンドラをアタッチし、getBalloonHtmlUnsafe()とバルーンコンテンツをフェッチを試し、それはscrubbingとしなければならないかもしれない考え出したが、そこにはありません。それはgetKml()でフェッチされると、です。

この単純なベースケースの例を作成するだけでなく、ネットワークリンクではなくge.parseKml()という文字列リテラルからロードすることも試みました。google.earth.fetchKml()

gx:TracksuggestedExtendedDataの技術を使用しているように見えるので、プラグインではサポートされていません。誰かがこれを確認できますか、私が間違っていることを私に見せてもらえますか?

また、前述のバルーンイベントハンドラで、選択したトラック位置にバルーンを正しく配置するために使用できる目印を取得できますが、そのトラックの配列インデックスを取得する方法が見つかりません私はkml DOMから自分自身でデータを選択するために使用するかもしれません。オブジェクトはホストオブジェクトであるように見えるので、gx:Track Placemarkへの特別なアピスは列挙できません。しかし、私の実際のデータセットは大きく(なぜ私はgx:Trackを使用しようとしています!)、私はJavaScriptのこのデータをとにかく操作したくないです。

ああと、私は主にWin7のを使用しています:

Google Chrome version: 17.0.963.79 m 
Google Earth plugin version: 6.2.1.6014 
Google Earth API version: 1.010 

すべてのヘルプは非常に高く評価されて、ありがとうございました。

答えて

0

簡単な答えはありません.Google EarthプラグインはKmlのサブセットとGX拡張機能のみをサポートしています(<gx:Tour><gx:LatLonQuad>など)。

スクラブは赤いニシンで、悪意のあるコード(iframe、オブジェクトなど)の可能性のある要素のみを取り除きます(getKml()テストの確認どおり)。

長い答えははいです。データを表示することはできますが、自分で解析してフォーマットする必要があります。何らかのサポート(すなわち、<gx:Tour>)を持つgx要素であっても、データにアクセスするためにはいくつかのホームスパン解析を行う必要があります。

すべての拡張データのサポートはすべて、APIではかなり弱いですが、最も基本的な型なしの名前/値のペアは実際にはサポートされていません。

この機能を追加するための公開機能リクエストがありますが、あなたには多少役に立っているかもしれないスレッドでいくつかの回避策があります。

http://code.google.com/p/earth-api-samples/issues/detail?id=16

関連する問題