Google maps Google地图/融合表应用程序行为异常/数据丢失
我有两个谷歌地图使用几乎相同的代码,但行为不同。两者都查询融合表以创建标记的图层组,并且都使用jQuery滑块触发在地图中设置和取消设置图层的函数。两者之间的唯一区别是它们查询的融合表。按预期工作所有融合表层及其相应的数据点按预期设置和取消设置。在设置/取消设置前几层(不是数据点最多的层)时按预期工作;然后显示设置2003-2006层时错误的数据点集。我验证了一些2005年数据点不在2003-2006层中;然后似乎继续按预期工作,以设置/取消设置其余层 我知道这似乎指向某个地方的数据中的一个小故障,但我们已经彻底检查了它,没有发现任何问题。我没有违反5层限制,一次只设置一层,并且找不到任何可以添加到地图的标记数量限制 有人知道这是什么原因吗?完成下面的代码。除融合表ID外,两个版本都相同Google maps Google地图/融合表应用程序行为异常/数据丢失,google-maps,google-fusion-tables,Google Maps,Google Fusion Tables,我有两个谷歌地图使用几乎相同的代码,但行为不同。两者都查询融合表以创建标记的图层组,并且都使用jQuery滑块触发在地图中设置和取消设置图层的函数。两者之间的唯一区别是它们查询的融合表。按预期工作所有融合表层及其相应的数据点按预期设置和取消设置。在设置/取消设置前几层(不是数据点最多的层)时按预期工作;然后显示设置2003-2006层时错误的数据点集。我验证了一些2005年数据点不在2003-2006层中;然后似乎继续按预期工作,以设置/取消设置其余层 我知道这似乎指向某个地方的数据中的一个小故
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>
这与每个磁贴的特征限制有关:每个磁贴的标记数限制为500个。超过500时,标记会变薄。在您的示例中,从2005年到2006年,每个磁贴的标记数很可能会超过500个,因此一些标记会变薄,其中一些标记的年份小于2005年
我希望这是有道理的;如果你有任何问题,请告诉我 非常感谢,凯瑟琳!您知道每个磁贴的标记限制是否是API的最新介绍吗?这是一个应用程序的新问题,该应用程序在三月份运行良好。这有文件记录吗?我搜索了标记限制,结果是空的;我想我已经重新阅读了所有相关的文档,但没有发现任何东西。嗯。。看起来没有记录在案。我们会努力的你还可以试试别的吗?将位置列从位置转换为文本,然后再转换回位置。这有时有助于修复缺少标记的问题,但在这种情况下可能没有帮助。