У меня две Карты Google, использующие практически одинаковый код, но ведущие себя по-разному.Оба опрашивают Fusion Table, чтобы создать слои (группы маркеров), и оба используют ползунок jQuery для запуска функций, которые устанавливают и удаляют слои на / из карты.Единственное различие между ними - это таблица сгорания, которую они запрашивают. Тот, который запрашивает небольшой набор данных , работает как ожидалось (все слои таблицы Fusion и соответствующие им точки данных установлены и не установлены, как ожидалось). Тот, который запрашивает около 3500 точек данных , работает, как и ожидалось, при установке / отмене первой пары слоев (которые не являются слоями с наибольшим количеством точек данных);затем показывает неправильный набор точек данных при настройке уровня 2003-2006 гг. (я убедился, что некоторые точки данных 2005 г. не находятся на уровне 2003-2006 гг.);затем, кажется, продолжает работать, как и ожидалось, для установки / сброса оставшихся слоев.
Я знаю, что это может указывать на сбой в данных где-то, но мы просмотрели его довольно тщательно и не можем найти какие-либопроблемы там.Я не нарушаю 5-слойный лимит (устанавливается только один слой за раз) и не могу найти никаких ограничений на количество маркеров, которые можно добавить на карту.
Кто-нибудь знает, что можетбыть причиной этого?Заполните код ниже.Обе версии идентичны, за исключением идентификаторов Fusion Table.
var map;
var infowindow;
function Initialize() {
var mapCenter = new google.maps.LatLng(42,-71.5314);
var mapOptions = {
zoom: 8,
center: mapCenter,
mapTypeId: google.maps.MapTypeId.ROADMAP,
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL
}
};
map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
infowindow = new google.maps.InfoWindow();
layer2003 = new google.maps.FusionTablesLayer({
query: {
select: 'Geocode_Source',
from: '2203337',
where: 'Year <= 2003'
}
});
layer2004 = new google.maps.FusionTablesLayer({
query: {
select: 'Geocode_Source',
from: '2203337',
where: 'Year <= 2004'
}
});
layer2005 = new google.maps.FusionTablesLayer({
query: {
select: 'Geocode_Source',
from: '2203337',
where: 'Year <= 2005'
}
});
layer2006 = new google.maps.FusionTablesLayer({
query: {
select: 'Geocode_Source',
from: '2203337',
where: 'Year <= 2006'
}
});
layer2007 = new google.maps.FusionTablesLayer({
query: {
select: 'Geocode_Source',
from: '2203337',
where: 'Year <= 2007'
}
});
layer2008 = new google.maps.FusionTablesLayer({
query: {
select: 'Geocode_Source',
from: '2203337',
where: 'Year <= 2008'
}
});
layer2009 = new google.maps.FusionTablesLayer({
query: {
select: 'Geocode_Source',
from: '2203337',
where: 'Year <= 2009'
}
});
layer2010 = new google.maps.FusionTablesLayer({
query: {
select: 'Geocode_Source',
from: '2203337',
where: 'Year <= 2010'
}
});
layer2011 = new google.maps.FusionTablesLayer({
query: {
select: 'Geocode_Source',
from: '2203337',
where: 'Year <= 2011'
}
});
layer2003.setMap(map);
google.maps.event.addListener(map, 'zoom_changed', function() {
if (map.getZoom() > 12) {
map.setZoom(12);
}
});
google.maps.event.addListener(map, 'zoom_changed', function() {
if (map.getZoom() < 8) {
map.setZoom(8);
}
});
} //end function Initialize
//Set Fusion Table layers onto the map or to null, as appropriate
function set2003() {
layer2003.setMap(map);
layer2004.setMap(null);
layer2005.setMap(null);
layer2006.setMap(null);
layer2007.setMap(null);
layer2008.setMap(null);
layer2009.setMap(null);
layer2010.setMap(null);
layer2011.setMap(null);
}
function set2004() {
layer2003.setMap(null);
layer2004.setMap(map);
layer2005.setMap(null);
layer2006.setMap(null);
layer2007.setMap(null);
layer2008.setMap(null);
layer2009.setMap(null);
layer2010.setMap(null);
layer2011.setMap(null);
}
function set2005() {
layer2003.setMap(null);
layer2004.setMap(null);
layer2005.setMap(map);
layer2006.setMap(null);
layer2007.setMap(null);
layer2008.setMap(null);
layer2009.setMap(null);
layer2010.setMap(null);
layer2011.setMap(null);
}
function set2006() {
layer2003.setMap(null);
layer2004.setMap(null);
layer2005.setMap(null);
layer2006.setMap(map);
layer2007.setMap(null);
layer2008.setMap(null);
layer2009.setMap(null);
layer2010.setMap(null);
layer2011.setMap(null);
}
function set2007() {
layer2003.setMap(null);
layer2004.setMap(null);
layer2005.setMap(null);
layer2006.setMap(null);
layer2007.setMap(map);
layer2008.setMap(null);
layer2009.setMap(null);
layer2010.setMap(null);
layer2011.setMap(null);
}
function set2008() {
layer2003.setMap(null);
layer2004.setMap(null);
layer2005.setMap(null);
layer2006.setMap(null);
layer2007.setMap(null);
layer2008.setMap(map);
layer2009.setMap(null);
layer2010.setMap(null);
layer2011.setMap(null);
}
function set2009() {
layer2003.setMap(null);
layer2004.setMap(null);
layer2005.setMap(null);
layer2006.setMap(null);
layer2007.setMap(null);
layer2008.setMap(null);
layer2009.setMap(map);
layer2010.setMap(null);
layer2011.setMap(null);
}
function set2010() {
layer2003.setMap(null);
layer2004.setMap(null);
layer2005.setMap(null);
layer2006.setMap(null);
layer2007.setMap(null);
layer2008.setMap(null);
layer2009.setMap(null);
layer2010.setMap(map);
layer2011.setMap(null);
}
function set2011() {
layer2003.setMap(null);
layer2004.setMap(null);
layer2005.setMap(null);
layer2006.setMap(null);
layer2007.setMap(null);
layer2008.setMap(null);
layer2009.setMap(null);
layer2010.setMap(null);
layer2011.setMap(map);
}
function UpdateMap(){
var value = $('#slider').slider('option', 'value');
if (value==2003){set2003();}
if (value==2004){set2004();}
if (value==2005){set2005();}
if (value==2006){set2006();}
if (value==2007){set2007();}
if (value==2008){set2008();}
if (value==2009){set2009();}
if (value==2010){set2010();}
if (value==2011){set2011();}
}
$(function(){
$('#slider').slider({
orientation: 'horizontal',
animate: true,
step: 1,
min: 2003,
max: 2011,
change: function(event, ui){
UpdateMap();
}
});
});
-->
</script>