Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用谷歌地图API 3.34地图缩放不起作用_Javascript_Google Maps Api 3_Internet Explorer 11 - Fatal编程技术网

Javascript 使用谷歌地图API 3.34地图缩放不起作用

Javascript 使用谷歌地图API 3.34地图缩放不起作用,javascript,google-maps-api-3,internet-explorer-11,Javascript,Google Maps Api 3,Internet Explorer 11,我有一个网站,利用谷歌地图API和覆盖从ESRI服务提供的包裹线。在Google和Firefox中,地图缩放控件显示得很好 高亮显示发生在ESRI磁贴上 在IE 11中,缩放控制消失,地图静止(无法缩放或移动) 如您所见,缩放控件丢失,平铺上的线(黄线)与底图不对齐。这是因为平铺已放大,但贴图未放大。2014年的报告中有一个类似的问题,但在3.16版中得到了解决 以下是我构建地图的代码: ///摘要 ///设置地图 ///参数 ///-mapDivID用于放置地图的div的字符串id ///

我有一个网站,利用谷歌地图API和覆盖从ESRI服务提供的包裹线。在Google和Firefox中,地图缩放控件显示得很好

高亮显示发生在ESRI磁贴上

在IE 11中,缩放控制消失,地图静止(无法缩放或移动)

如您所见,缩放控件丢失,平铺上的线(黄线)与底图不对齐。这是因为平铺已放大,但贴图未放大。2014年的报告中有一个类似的问题,但在3.16版中得到了解决

以下是我构建地图的代码:

///摘要
///设置地图
///参数
///-mapDivID用于放置地图的div的字符串id
///-具有lat和lng属性的coords对象
///-缩放地图的默认缩放(我使用13)
///-方向显示方向的可选对象
函数startmap(mapDivID、坐标、缩放、方向){
var-maps=新数组();
var bounds=新数组();
var方向显示;
var定向服务;
//让副驾驶把地图放进去,检查确认它在那里。
var mapDiv=document.getElementById(mapDivID);
if(mapDiv){
变量选项={
缩放:缩放,
中心:coords,
动物控制:对,
ZoomControl选项:{
帖子:google.maps.ControlPosition.BOTTOM\u RIGHT
}
};
//我们有多个映射,所以我们需要按divID将它们存储在一个数组中,这样我们就不会重叠其中一个。
var-map={};
if(maps.indexOf(mapDivID)<0){
maps[mapDivID]=新的google.maps.Map(mapDiv,选项);
若有(指示){
directionsDisplay=新建google.maps.DirectionsRenderer;
directionsService=新的google.maps.directionsService;
setMap(maps[mapDivID]);
directions display.setPanel(document.getElementById('directions-panel');
var onChangeHandler=函数(e){
if(e.which&&e.which==13){
calculateAndDisplayRoute();
}
};
document.getElementById('txtOrigin')。addEventListener('keypress',onChangeHandler);
}
} 
map=maps[mapDivID];
if(bounds.indexOf(mapDivID)<0){
bounds[mapDivID]=新的google.maps.LatLngBounds();
}
返回图;
}否则{
//无地图分区
console.error(mapDivID+“未找到”);
}
返回图;
}
startmap('map',{lat:-34.397,lng:150.644},13,null);
#地图{宽度:100%;高度:100%}

地图在这里
使用

代替:

zoomControlOptions: {
                postion: google.maps.ControlPosition.BOTTOM_RIGHT
            }

在您的屏幕上会出现平移交互,您可以放大/缩小

感谢Hello Earth,但这只能使您可以使用滚轮进行放大和缩小,而无需按“Ctrl”。它仍然在背景中显示一个静态贴图,对缩放没有响应。只有ESRI层可以缩放。你的代码片段不起作用。问题是它需要一个Google Maps API的密钥,我不能把它放在那里让每个人都能看到。代码来自该站点,因此我知道它可以工作(在Chrome/Firefox中)。我只是想弄明白为什么它会在IE中被破坏。编辑你的代码片段时,只需要最少的必要代码就可以重现这个问题,当然,不需要你的API密钥。地图应该显示为该站点的代码片段允许无键访问Google Maps API。我添加了一个到Maps API的链接,但它给了我一个缺少键的错误。是否需要添加另一个链接才能使其正常工作?我尝试添加Google Maps API键并测试您的代码,它将显示“Maps未定义”错误,您在其中定义了Maps变量?我建议你可以参考来学习如何使用谷歌地图缩放,根据文档,我创建了一个示例,它在IE11中运行良好。
zoomControlOptions: {
                postion: google.maps.ControlPosition.BOTTOM_RIGHT
            }