2017-03-06 12 views
2

ジオチャートを使用して、世界中の利用可能な店舗を私のウェブサイトに表示しています。利用可能な店舗のデータを追加し、 divを地図上のある地域をクリックするたびに表示します。私はロシアのようなマップ上の領域をクリックすると、利用可能店舗/ストアのアドレスのデータは、地図のほか、「地域情報」のdivにGoogle Geochartsの国に2〜3行のデータを追加する方法

<!DOCTYPE html> 
<html> 
<head> 
<script async defer 
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAJ142umlpMPn6tahte2VZwwNUfHkVZXcs"> 
</script> 
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
<script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
<script type="text/javascript"> 
google.charts.load('current', {'packages':['geochart']}); 
google.charts.setOnLoadCallback(drawMap); 
<!-- google.load('visualization', '1', { packages: ['geochart'],callback: drawMap }); --> 
function drawMap() { 

var data = google.visualization.arrayToDataTable([ 
['Country'], 
['Austria'], 
['Belgium'], 
['Bulgaria'], 
['China'], 
['Croatia'], 
['Czech Republic'], 
['France'], 
['Germany'], 
['Greek'], 
['Hungary'], 
['India'], 
['Italy'], 
['Japan'], 
['Kazakhstan'], 
['Luxembourg'], 
['Moldova'], 
['Netherlands'], 
['Pakistan'], 
['Poland'], 
['Portugal'], 
['Romania'], 
['Russia'], 
['Serbia'], 
['Slovakia'], 
['Spain'], 
['Sweden'], 
['Switzerland'], 
['Turkey'], 
['Ukraine'] 
]); 

var options = { 
backgroundColor: '#81d4fa', 
defaultColor: '#FCC51D', 
dataMode: 'regions', 

<!-- region:'IN' --> 

}; 

var container = document.getElementById('regions_div'); 
var chart = new google.visualization.GeoChart(container); 


function myClickHandler() { 

var selection = chart.getSelection(); 
document.getElementById('region-info').style.visibility="visible"; 
<!-- var message = ''; --> 
for (var i = 0; i < selection.length; i++) { 
    var item = selection[i]; 
    if (item.row != null && item.column != null) { 
    //message += '{row:' + item.row + ',column:' + item.column + '}'; 
    document.getElementById('region-info').innerHTML = "This is the region where we put store-info"; 
    } else if (item.row != null) { 
    <!-- message += '{row:' + item.row + '}'; --> 
    document.getElementById('region-info').innerHTML = "This is the region where we put store-info"; 
    } else if (item.column != null) { 
    <!-- message += '{column:' + item.column + '}'; --> 
    document.getElementById('region-info').innerHTML = "This is the region where we put store-info"; 
    } 

    google.visualization.events.addListener(chart, 'select', myClickHandler); 
    $("#zoomin").click(function() { 
    var zoom = $("#map-area").css("zoom",1.4); 
    }); 

    $("#zoomout").click(function() { 
    var zoom = $("#map-area").css("zoom",1); 
    }); 


    chart.draw(data, options); 
    } 

    </script> 
    <style> 
.jvectormap-zoomin,.jvectormap-zoomout{ 
    border: 1px solid #c8d9e5; 
    color: #565a5b; 
    font-family: 'DINWebPro-Medium W01 Regular',"Helvetica Neue",Helvetica,Arial,sans-serif; 
font-size: 42px; 
text-align: center; 
cursor: pointer; 
width: 55px; 
position: absolute; 
opacity: 0.5; 
left: 17px; 
background: white; 
height: 44px; 
} 
.jvectormap-zoomin{ 
    bottom: 55px; 
} 
.jvectormap-zoomout{ 
    bottom: 5px; 
} 
.geocharts-container{ 
    height:100%; 
    width:100%; 
    position:relative; 
    overflow:hidden; 
    border: 1px solid #000; 

} 

</style> 
</head> 
<body> 
<div class="geocharts-container"> 
<div id="map-area" style="width: 80%; height: 600px;float:left;"><div id="regions_div"></div></div> 
<div id="zoomin" class="jvectormap-zoomin">+</div> 
<div id="zoomout" class="jvectormap-zoomout">-</div> 
<div id="region-info" style="float:right;width:20%;height:600px;visibility:hidden;">Text area</div> 
</div> 

</body> 
</html> 

を示すべきである:以下は私のコードです。

答えて

0

あなたは

が、その後

選択
var view = new google.visualization.DataView(data); 
// only include first column 
view.setColumns([0]); 

、データから情報を引き出しチャートから追加の列を非表示にするデータビューを使用してデータテーブルに追加の列として店舗の情報を追加することができますDIV内のテーブルと表示

注:私は間違っていない場合は、GeoChartは、複数の選択をしていることはありません
selection.columnは常に作業スニペット以下を参照してください


nullになります...

google.charts.load('current', {'packages':['geochart']}); 
 
google.charts.setOnLoadCallback(drawMap); 
 
function drawMap() { 
 
    var data = google.visualization.arrayToDataTable([ 
 
    ['Country', 'Sales'], 
 
    ['Austria', 100], 
 
    ['Belgium', 103], 
 
    ['Bulgaria', 150], 
 
    ['China', 160], 
 
    ['Croatia', 85], 
 
    ['Czech Republic', 40], 
 
    ['France', 60], 
 
    ['Germany', 80], 
 
    ['Greek', 111], 
 
    ['Hungary', 130], 
 
    ['India', 90], 
 
    ['Italy', 210], 
 
    ['Japan', 230], 
 
    ['Kazakhstan', 56], 
 
    ['Luxembourg', 14], 
 
    ['Moldova', 2], 
 
    ['Netherlands', 91], 
 
    ['Pakistan', 12], 
 
    ['Poland', 63], 
 
    ['Portugal', 14], 
 
    ['Romania', 105], 
 
    ['Russia', 60], 
 
    ['Serbia', 81], 
 
    ['Slovakia', 25], 
 
    ['Spain', 85], 
 
    ['Sweden', 150], 
 
    ['Switzerland', 102], 
 
    ['Turkey', 113], 
 
    ['Ukraine', 40] 
 
    ]); 
 
    var view = new google.visualization.DataView(data); 
 
    // only include first column 
 
    view.setColumns([0]); 
 

 
    var options = { 
 
    backgroundColor: '#81d4fa', 
 
    defaultColor: '#FCC51D', 
 
    dataMode: 'regions', 
 
    }; 
 

 
    var container = document.getElementById('regions_div'); 
 
    var chart = new google.visualization.GeoChart(container); 
 

 
    google.visualization.events.addListener(chart, 'select', myClickHandler); 
 
    $("#zoomin").click(function() { 
 
    var zoom = $("#map-area").css("zoom",1.4); 
 
    }); 
 

 
    $("#zoomout").click(function() { 
 
    var zoom = $("#map-area").css("zoom",1); 
 
    }); 
 
    chart.draw(view, options); 
 

 
    function myClickHandler() { 
 
    var selection = chart.getSelection(); 
 
    document.getElementById('region-info').style.visibility="visible"; 
 
    if (selection.length > 0) { 
 
     var storeInfo = data.getValue(selection[0].row, 0) + ' ' + data.getColumnLabel(1) + ': ' + data.getValue(selection[0].row, 1); 
 
     document.getElementById('region-info').innerHTML = "This is the region where we put store-info<br/>" + storeInfo; 
 
    } 
 
    } 
 
}
.jvectormap-zoomin,.jvectormap-zoomout{ 
 
    border: 1px solid #c8d9e5; 
 
    color: #565a5b; 
 
    font-family: 'DINWebPro-Medium W01 Regular',"Helvetica Neue",Helvetica,Arial,sans-serif; 
 
    font-size: 42px; 
 
    text-align: center; 
 
    cursor: pointer; 
 
    width: 55px; 
 
    position: absolute; 
 
    opacity: 0.5; 
 
    left: 17px; 
 
    background: white; 
 
    height: 44px; 
 
} 
 
.jvectormap-zoomin{ 
 
    bottom: 55px; 
 
} 
 
.jvectormap-zoomout{ 
 
    bottom: 5px; 
 
} 
 
.geocharts-container{ 
 
    height:100%; 
 
    width:100%; 
 
    position:relative; 
 
    overflow:hidden; 
 
    border: 1px solid #000; 
 
}
<script async defer 
 
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAJ142umlpMPn6tahte2VZwwNUfHkVZXcs"> 
 
</script> 
 
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
 
<div class="geocharts-container"> 
 
<div id="map-area" style="width: 80%; height: 600px;float:left;"><div id="regions_div"></div></div> 
 
<div id="zoomin" class="jvectormap-zoomin">+</div> 
 
<div id="zoomout" class="jvectormap-zoomout">-</div> 
 
<div id="region-info" style="float:right;width:20%;height:600px;visibility:hidden;">Text area</div> 
 
</div>

関連する問題