2012-06-28 3 views
1

Google Earth (또는 worldwind) 풍선에 표시 할 콘텐츠가 모두 포함 된 xhtml 페이지를 제공하는 서버가 있습니다. 위치 표시 풍선을지도에서 클릭하면 html 페이지를 가져 오도록하고 싶습니다. 간단하게하기 위해지도에서 클릭하면 풍선이 www.yahoo.com이되기를 바랍니다.URL에서 가져온 kml 풍선 도움말의 동적 콘텐츠

온라인으로 검색하면 Google 어스 API에 연결할 수있는 자바 코드가 전송됩니다. 이 작업을 수행하는 클라이언트 쪽 kml 방법이 정말로 필요합니다. 이 기능을 사용하기 위해 사용할 수있는 확장 된 데이터 태그 또는 설명 태그가 있습니까? 심지어 튜브 비디오에 적합하지만 HTML 페이지에는 플러그인이없는 embed 태그를 사용하려고했습니다. 어떤 도움이라도 대단히 감사합니다.

이 너무 작동하지만 iframe이 꽤 추한 -

<Placemark> 
    <name>Test Placemark</name> 
    <description> 
     <![CDATA[ 
     <iframe src="http://www.yahoo.com" frameborder="0" 
      scrolling="auto" height="500" width="600"></iframe> 
     ]]> 
    </description> 
... 

답변

0

당신이 getBalloonHtmlUnsafe를()와 HtmlDivBalloon을 시도 할 수? https://developers.google.com/earth/documentation/balloons#getballoonhtmlunsafe

그러나 kml을 페이지에 추가하면 클릭 기능을 해당 위치 표시에 바인딩 할 수 있습니다.

google.earth.fetchKml(ge, url, function(kmlObject){ 
    if(kmlObject){ 
     ge.getFeatures().appendChild(kmlObject); 

     if(kmlObject.getType() === 'KmlPlacemark'){ 
      google.earth.addEventListener(kmlObject, 'click', function(event){ 
       event.preventDefault(); 

       var balloon = ge.createHtmlDivBalloon(''); 
       var content = kmlObject.getBalloonHtmlUnsafe(); 
       balloon.setFeature(kmlObject); 
       var div = document.createElement('div'); 
       div.innerHTML = content; 
       balloon.setContentDiv(div); 

       ge.setBalloon(balloon); 
      }); 
     } 
    } 
}); 

이 여전히 작동하지 않으면, 구글 어스 스크럽 풍선 많은 데이터가 당신 때문에 HTML을 주입하기 위해 jQuery를 사용하여 시도 할 수 있음을 기억하십시오.

var balloon = ge.createHtmlDivBalloon(''); 
var content = kmlObject.getBalloonHtmlUnsafe(); 
balloon.setFeature(kmlObject); 
var div = document.createElement('div'); 
balloon.setContentDiv(div); 

ge.setBalloon(balloon); 
$(div).html(content);