Можно ли объединить все данные полигона (описание &) в определенный момент в один InfoWindow при нажатии? У меня есть несколько перекрывающихся полигонов, и InfoWindow отображает только данные из самого верхнего. Кажется, это должно быть возможно, используя таблицы Fusion и прослушиватель кликов на карте, чтобы при щелчке на карте запрос отправлялся в таблицы Fusion, чтобы найти все полигоны, которые пересекаются с точкой, на которую была нажата (с использованием ST_INTERSECTS с CIRCLE и очень маленький радиус). Единственными столбцами в моей таблице Fusion являются Name, Description и Geometry (содержащие стандартный KML).Комбинировать данные InfoWindow при наведении перекрывающихся полигонов?
Это насколько я знаю. Отображаются полигоны, и круг отображается и центрируется на экране. InfoWindow отображает [объект Object].
var lat = 37.4;
var lng = -122.1;
var tableid = '1mxcz4IDL1U7ItrqulVzt01fMasj5zsmBFUuQh6iM';
var meters = 10000;
layer = new google.maps.FusionTablesLayer({
query: {
select: 'geometry',
from: tableid,
}
});
layer.setMap(map);
google.maps.event.addListener(layer, 'click', function(event) {
changeCenter(event);
});
function changeCenter(event) {
lat = event.latLng.lat();
lng = event.latLng.lng();
circle.setCenter(event.latLng);
}
circle = new google.maps.Circle({
center: new google.maps.LatLng(lat, lng),
radius: meters,
map: map,
fillOpacity: 0.2,
strokeOpacity: 0.5,
strokeWeight: 1,
});
comboname = new google.maps.FusionTablesLayer({
query: {
select: 'name',
from: tableid,
where: 'ST_INTERSECTS(geometry, CIRCLE(LATLNG(' + lat + ',' + lng + '),' + meters + '))'
}
});
google.maps.event.addListener(layer, 'click', function(e) {
// Display all of the names in the InfoWindow
e.infoWindowHtml = comboname;
});
}
Похоже, что должно работать. Ты это пробовал? – geocodezip
Добавлен код выше, все еще не повезло. –
Я использую 'PostGIS'->' geoJSON'-> '[layerName] = new google.maps.Data(); k.addGeoJson (geoJSON, [и т. д.]), а не FusionTables. Единственный способ, которым я нашел это, - взять «latLng» щелчка обратно в PostGIS и сделать все запросы данных там. Итерация через функции (by k.ForEach (function (feature) {}) '-интерфейс данных и получение геометрии приводит к серии объектов Polygon, но не удалось получить' containsLocation ([ clickEvent.latLng], [feature.geometry]), чтобы вызвать правильную работу. –