我试图在单独的页面中创建链接到地图。当用户单击链接时,它将重定向到地图并显示与该链接对应的地质多边形。但是,经过几个小时的调试后,我发现setZoom函数阻止我这样做,我无法弄清楚原因。如果您点击按钮'请参阅地图上的Tg'在http://www.geology.ar.gov/test/javascript_variablePassing1.html,它会创建网址http://www.geology.ar.gov/geology/strat_geomap.htm?formation=tg'。当地图页面加载时,它会解析出“tg'并将其传递给函数showStratChart(tg)和processGeoFm(tg)。但是在函数processGeoFm()中,它使用setZoom函数,并且地图视图跳转到另一个位置。目前我已经评论过processGeoFm()进行测试......
var lblTextPass = new String(window.location);
var equalIndex = lblTextPass.indexOf("=") + 1;
//window.alert(theleft);
if (equalIndex > 0) {
//var delay = 2000;
//setTimeout(function(){
var fmLabel = lblTextPass.substring(equalIndex, lblTextPass.length);
// //window.alert(fmLabel);
//processGeoFm(fmLabel);
showStratChart(fmLabel);
map.setCenter(new google.maps.LatLng(36.027791, -91.188240));
//if (map.getZoom()) {
map.setZoom(9);
//}
//},delay);
} else {
processGeoFm("Ozarks");
}
如果我注释掉map.setZoom(9),地图就不会跳到另一个lat / lng。如果您直接转到地图http://www.geology.ar.gov/geology/strat_geomap.htm,地图会调用processGeoFm(" Ozarks")并且它不会导致地图视图跳转,也不会在您调用processGeoFm()时发生从地图上方的下拉菜单中选择某些内容,例如Gravel(tg)。我真的可以在这方面提供一些帮助。谢谢!
答案 0 :(得分:0)
另一个堆栈溢出问题导致我这个解决方案,我必须添加到我的processGeoFm函数....
var zmListener = google.maps.event.addListenerOnce(map, "idle", function() {
//this corrects bug with setZoom function when passing a variable from another page
map.setZoom(7);
map.setCenter(new google.maps.LatLng(34.75, -91.184)); //this ensures correct lat/lng
});
map.setCenter(new google.maps.LatLng(34.75, -91.184));
不知道为什么我不得不这样做