2012-03-01 8 views
1

infoBubble을 사용하여 Google 차트 도구 (이미지 차트가 아닌 시각화 API)를 사용하려고합니다. infobubble은 굉장합니다. 내가 필요로하는 것을 정확히 수행한다. 내 프로젝트는 infobubble 탭 중 하나에서 차트를 사용하도록 요구합니다. 그래서이 코드 (아래 참조)를 사용하여 div의 내용에 차트를 생성 할 contentString을 작성하려고합니다. 그래도 차트를 만들지는 않습니다. 특히 컨텐츠 문자열에 어떤 것이 잘못 보이는지?google maps api infowindow 콘텐츠 문자열에서 Google 차트 도구 사용

//returns the status string 
function GetPublicProjectStatusString(data){ 

    var contentString = '<div id="content" style="margin:0;">'+ 
      '<h3>' + 'Project Phase' + '</h3>'+ 
      '<p>' + data.ProjectPhase + '</p>'+ 
      '<div id="parentDiv">' + 
       '<div id="chartDiv" style="top:0px;left:0px;width:200px;height:200px;">' + 
       '</div>' + 
       '<div id="secondDiv">' + 
        '<h3>' + 'Start Date' + '</h3>' + 
       '</div>' + 
      '</div>' + 
     '</div>' + 
     '<script type="text/javascript">' + 
      'var chartdata = new google.visualization.DataTable();' + 
      'chartdata.addColumn("string", "Source");' + 
      'chartdata.addColumn("number", "Amount");' + 
      'chartdata.addRows([' + 
       '["Federal",4],' + 
       '["State",8],' + 
       '["County",9],' + 
       '["Local",14],' + 
      ']);' + 
      'var options = {"title":"Project Budget"' + 
       '"width":200,' + 
       '"height":200};' + 
      'var chart = new google.visualization.PieChart(document.getElementById("chartDiv"));' + 
      'chart.draw(data,options);' + 
     '</script>'; 

    return contentString; 

} 

답변

3

콘텐츠 문자열에 스크립트 태그를 사용할 수 있다고 생각해서 다음 방법이 도움이 될 것이라고 생각합니다. 당신이

var contentString = "<div id='chart_div'></div>"; 

콘텐츠 문자열의 사업부에 차트를 추가 적용 할 수있는이 구글 차트 예제를 보라

그래프 배치 할 위치를

콘텐츠 문자열에 사업부를 사용

Google Charts Tools Example

콘텐츠 문자열의 사업부는 아마의 일부가 아닌 것처럼 그래서 당신은 직접 (차트 예에서 수행되는) 여기에 차트를 추가 할 수 없습니다 마커를 클릭하는 것과 같은 사용자 입력에 의해 만들어집니다 그러나 돔 아직. 그러므로 당신은 infoBubble을 만드는 이벤트를 경청해야합니다. 구글지도 API에서 마커에 연결된 정보창이는 다음과 같이됩니다. 정보창이 정보가 만든 창 drawChart 함수 당신이 적응 차트 코드 예제를 래핑이

google.maps.event.addListener(infoWindow, 'domready', function() { drawChart(); }); 

희망이 도움이됩니다.

0

domready 이벤트 핸들러 내에서 chart::draw()을 호출하지 못했습니다. "보고있는 브라우저가 Google 차트를 지원하지 않습니다."라는 오류 메시지가 표시됩니다.