Опция изменения региона Google Geomap API onClick()
Этот фрагмент кода рисует карту с помощью Google Geomap API
<script type="text/javascript">
google.setOnLoadCallback(drawMap);
function drawMap() {
var data = new google.visualization.DataTable();
data.addColumn('string','iso'); //e.g.: mx
data.addColumn('number','population'); //e.g.: 114
data.addRows([["mx",114],["ec",14],["ve",28]]);
var options = {
region: '005',
width: '511px',
height: '280px',
showLegend: true
};
var geomap = new google.visualization.GeoMap(document.getElementById('map'));
geomap.draw(data,options);
};
</script>
Регион, выбранный по умолчанию, - 005 (Южная Америка). Это другие доступные регионы:
- 013 - (Центральная Америка)
- 150 - (Европа)
Как я могу динамически изменить регион уже нарисованной карты? Что-то вроде этого:
<a href="javascript:void(null);" onclick="changeRegion(150);">Europe</a>
Я знаю, что карту нужно будет перерисовать, но я застрял на этапе изменения свойств региона. Любые идеи помогут. Спасибо!
1 ответ
Если у вас уже есть данные, я дам вам фрагмент, который я использую в своем собственном приложении. Я думаю, легче понять, чем объяснять. Надеюсь, поможет. В моем случае я хотел отобразить цифры по странам в одном регионе.
geomap = new google.visualization.GeoMap(document.getElementById('geo_chart'));
google.visualization.events.addListener( geomap, 'regionClick',
function(e)
{
var dataLocal = new google.visualization.DataTable();
var grouped_cities;
if (e['region'] == "0")
return;
options['colors'] = [0xaacdf8, 0x164177]; //orange colors
options['dataMode'] = 'markers';
options['region'] = e['region'];
options['showZoomOut'] = true;
if ( previous_region != e['region'] )
{
var indexes = dataFull.getFilteredRows([{column: 0, value: e['region']}]);
dataLocal.addRows(indexes.length);
dataLocal.addColumn('string', 'City');
dataLocal.addColumn('number', 'Views');
for ( i=0; i<indexes.length; i++ )
{
dataLocal.setValue(i, 0, dataFull.getValue(indexes[i], 2));
dataLocal.setValue(i, 1, dataFull.getValue(indexes[i], 3));
}
grouped_cities = google.visualization.data.group( dataLocal, [0],[{'column': 1, 'aggregation': google.visualization.data.sum, 'type': 'number'}]);
previous_region = e['region'];
}
geomap.draw(grouped_cities, options);
delete grouped_cities;
delete dataLocal;
}
);