Пока у меня есть только 3 источника геойсона. возможно, в будущем будет более 3 источников, которые я буду использовать. в моем коде он может отображать только одно «информационное окно». я хочу спросить, как мне отображать информационные окна для каждого источника geojson?
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 2,
center: {lat: -2.9365327, lng: 104.4950964}
});
var infowindow = new google.maps.InfoWindow();
var foo1 = new google.maps.Data({map: map});
foo1.loadGeoJson('https://rawgit.com/johan/world.geo.json/master/countries.geo.json');
var foo2 = new google.maps.Data({map: map});
foo2.loadGeoJson('https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_50m_rivers_lake_centerlines.geojson');
var foo3 = new google.maps.Data({map: map});
foo3.loadGeoJson('https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_50m_geography_regions_points.geojson');
foo1.setStyle({
fillColor: 'green',
strokeColor: 'green',
strokeWeight: 1
});
foo2.setStyle({
fillColor: 'blue',
strokeColor: 'blue',
strokeWeight: 1
});
foo3.setStyle({
fillColor: 'green',
strokeColor: 'red',
strokeWeight: 1
});
$('#foo1').click(function(){
foo1.setMap($(this).is(':checked') ? map : null);
});
$('#foo2').click(function(){
foo2.setMap($(this).is(':checked') ? map : null);
});
$('#foo3').click(function(){
foo3.setMap($(this).is(':checked') ? map : null);
});
$('#foo1,#foo2,#foo3').removeAttr('disabled');
$('#all').click(function(){
foo1.setMap($(this).is(':checked') ? map : null);
foo2.setMap($(this).is(':checked') ? map : null);
foo3.setMap($(this).is(':checked') ? map : null);
});
$(document).ready(function() {
$('#all').click(function() {
var checked = $(this).prop('checked');
$('#checkboxes').find('input:checkbox').prop('checked', checked);
});
})
var ced = google.maps.event.addListener(foo1, 'click', function(event) {
var aab=event.feature.l.name;
infowindow.setContent('<div class="col-md-12"><div class="row"><div class="col-md-12"><table class="table table-striped"><tr><th>ID</th><td>'+aab+'</td></tr><tr><th>Latitude</th><td>'+ event.latLng.lat()+'</td></tr><tr><th>Longitude</th><td>'+ event.latLng.lng()+'</td></tr></table></div></div><div class="row"><div class="col-md-12"><button type="button" class="btn btn-info col-md-12" data-toggle="modal" data-target="#myModal'+aab+'">Detail</button></div></div></div>');
console.log(event.feature.l)
infowindow.setPosition(event.latLng);
infowindow.open(map);
});
foo1.data.addListener('mouseover', function (event) {
foo1.data.revertStyle();
foo1.data.overrideStyle(event.feature, {
strokeColor: 'red',
strokeWeight: 8,
visibility: 'off'
});
});
foo1.data.addListener('mouseout', function (event) {
foo1.data.revertStyle();
});
}
Как видите, у меня есть три разных источника.
и при нажатии только один источник успешно отображает информацию о Windows. на этом изображении работает только для 'var foo1'
Может кто-нибудь мне помочь?