2012-03-14 2 views
1

짐작할 수 있듯이, 그것은 저에게 효과적이지 않습니다. 나는 확실한 답을 찾으려고 노력하고 있습니다. 지도에서 지원되지 않는다는 것을 알고 있습니다. 여기kml gx : Track ExtendedData 디스플레이가 Google 어스 플러그인에서 작동합니까?

는 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> 

지구 데스크톱 클라이언트에서 예상대로이 표시됩니다. 그러나 플러그인을 사용하는 브라우저 기반 앱에로드 할 때 MyFieldExtendedData (InfoId 스키마와 연결됨)은 트랙 포인트와 연관된 풍선에 표시되지 않습니다.

나는 그렇게 내가 트랙 포인트에 대한 unscrubbed 내용과 새로운 풍선을 만들 수 바라고 balloonopening 이벤트에 이벤트 처리기를 부착하고 getBalloonHtmlUnsafe()와 풍선의 컨텐츠를 가져 오는 실험, scrubbing으로해야 할 수도 있습니다 생각하지만, 거기 있지 않아. getKml()으로 가져 오면 입니다.

이 간단한 기본 사례를 만드는 것 외에도 네트워크 링크가 아닌 ge.parseKml() 또는 google.earth.fetchKml() 문자열 리터럴에서로드하는 방법을 시도해 보았습니다.

따라서 gx:Track과 함께 suggestedExtendedData 기술을 사용하는 것은 플러그인에서 지원되지 않거나 적어도 작동하지 않습니다. 누군가가 이것을 확인하거나 잘못된 것을 보여줄 수 있습니까?

또는 풍선 도움말을 풍선 도움말에 배치 할 때 사용할 수있는 풍선 이벤트 핸들러에서 장소 표시를 검색 할 수 있지만 해당 풍선에 대한 배열 색인을 검색하는 방법을 찾을 수 없습니다. kml DOM에서 직접 데이터를 선택하는 데 사용할 수 있습니다. 개체가 호스트 개체로 표시되므로 gx : Track Placemark에 대한 특수 api는 열거 할 수 없습니다. 그러나 실제 데이터 세트는 크며 (왜 내가 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 어스 플러그인은 Kml 및 GX 확장자의 하위 집합 (예 : <gx:Tour>, <gx:LatLonQuad> 등) 만 지원합니다.

스크러빙은 빨간색 청어입니다. 악성 코드 (iframe, object 등)의 가능한 벡터 인 요소 만 제거합니다 (getKml() 테스트가 확인한대로).

긴 대답은 예입니다. 데이터를 표시 할 수 있지만 직접 구문을 분석하고 형식을 지정해야합니다. 약간의 지원 (예 : <gx:Tour>)이있는 gx 요소의 경우에도 데이터에 액세스하려면 집에서 파싱을 수행해야합니다.

모두 확장 된 데이터 지원은 API에서 매우 약합니다. 가장 기본적인 기본 유형/이름 쌍조차 실제로 지원되지 않습니다.

이 기능을 추가 할 수있는 공개 기능 요청이 있으며, 몇 가지 사용 방법이있을 수 있습니다.

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

관련 문제