- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我在这里遇到了一些问题。此脚本在除 IE8 之外的所有浏览器中都可以正常工作
route() 函数被调用 - 并被赋予 Google map 编码的多边形和折线。每次 IE8 尝试执行 setMap 时脚本都会中断
我认为这个问题与 map 超出其范围有关?还是尾随的逗号错误?我刚刚花了最后几个小时来解决这个问题,但我无法修复它。
有什么想法吗?非常感激。通常不喜欢粘贴整个代码,因为它有点让人不知所措,但在这种情况下需要它。
var markersArray = [];
function initMap(lat,lng) {
if(lat) {
var myLatLng = new google.maps.LatLng(lat, lng);
var zoomi=13;
}else{
var myLatLng = new google.maps.LatLng(54.162434, -2.285156);
var zoomi=5;
}
var myOptions = {
zoom: zoomi,
zoomControl: true,
panControl: false,
streetViewControl: false,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.LEFT_CENTER
},
center: myLatLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map"), myOptions);
}
function route(journeyPolyy,journeyLine,startLat,startLng,endLat,endLng) {
reset();
var startLatLng=startLat + ',' + startLng;
var start = new google.maps.LatLng(startLat,startLng);
var end = new google.maps.LatLng(endLat,endLng);
var decodedPath = google.maps.geometry.encoding.decodePath(journeyLine);
var flightPath = new google.maps.Polyline({
path: decodedPath,
strokeColor: 'blue',
strokeOpacity: 0.5,
strokeWeight: 5
});
markersArray.push(flightPath);
flightPath.setMap(map);
var marker = new google.maps.Marker({
position: start
});
markersArray.push(marker);
marker.setMap(map);
var endPpoint = new google.maps.Marker({
position: end
});
markersArray.push(endPpoint);
endPpoint.setMap(map);
poly = journeyPolyy.replace(/\\\\/g,"\\");
var decodedPath = google.maps.geometry.encoding.decodePath(poly);
var decodedLevels = decodeLevels("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB");
var setRegion = new google.maps.Polygon({
path: decodedPath,
levels: decodedLevels,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 1,
fillColor : '#FF0000',
fillOpacity : 0.1,
map: map
});
setRegion.setMap(map);
markersArray.push(setRegion);
var obj= document.getElementById('map');
obj.style.visibility='visible';
HideContent('mainContent');
map.setCenter(start);
map.setZoom(13);
}
function decodeLevels(encodedLevelsString) {
var decodedLevels = [];
for (var i = 0; i < encodedLevelsString.length; ++i) {
var level = encodedLevelsString.charCodeAt(i) - 63;
decodedLevels.push(level);
}
return decodedLevels;
}
function reset() {
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(null);
}
markersArray.length = 0;
}
}
最佳答案
存在命名冲突(map-objects 名称与元素的 id 相同)
您可以为 div 使用不同的 ID,为 map 变量使用不同的名称,或者在全局范围内声明 map 变量:
var map;
关于javascript - IE8 的谷歌地图 .setMap 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14114576/
感觉理解了很多,但又卡在了新项目上.. 我正在尝试从使用 Google Map API 创建的 map 中删除标记。 我在信息窗口中有一个删除标记按钮。 下面是我的代码: function Delet
我正在为 Google map 编写自定义叠加层。我有很多经纬度点,我想要带有指向和来自它们的箭头的图像。我正在关注 Google 的自定义叠加层教程 (https://developers.goog
我想从谷歌地图中删除所有旧标记并添加新标记,但 setMap(null) 不起作用,它会添加新标记而不删除旧标记。请查看我的代码 var markers = data[
我正在处理我的谷歌地图页面在 Firebug 中显示错误的问题。当我在经销商 map 中搜索时,将触发 clearLocations() 函数。但出现此错误:“markers[i].setMap
所以我在这里遇到了一些问题。此脚本在除 IE8 之外的所有浏览器中都可以正常工作 route() 函数被调用 - 并被赋予 Google map 编码的多边形和折线。每次 IE8 尝试执行 setMa
我看到这里的人可能会解释这个功能: // REMOVE All MARKERS FUNCTION // Removes all markers currently on map //
我的 bing map 无法加载信息框。我有一个数组,可以为渲染的位置创建图钉,下面是我使用的代码。我已经添加了用于显示的控制台消息,以检查它是否被正确调用。我想知道偏移/ anchor 是否与不显示
当我使用 sencha touch2.2.1 时,我遇到了一个问题。 在查看器中: items: [{ id: 'mapCanvas', xtype:'map', useCur
我有 OpanLayers 2.10,当我尝试将 OpenLayers.Control.Measure 添加到 map 控件时,出现此错误: TypeError: Object # has no me
我正在尝试从 Google map 中清除之前的路线。但是,当您进行另一次搜索时,上一次搜索的多段线和标记仍然会显示。我试过使用 directionsRenderer.setMap(null),但没有
我正在寻找 Set Java 中的实现,它提供基于元素属性的查找。用 Guava 的术语来思考它可以使用 Function 来构建。 (预计在所有集合元素中都是唯一的)并提供一种方法 find(Sea
当 ZoomIn/ZoomOut 事件触发时,我尝试删除所有圆圈和标记。我像这样插入了 For 循环中的每个标记和圆圈 gmarkers.push(new google.maps.Circle(cir
我是 Google map 新手。我将 Google Maps v3 map 添加到 ASP.NET 4.0 项目的 aspx 文件中,并尝试为 map 上的四个 KML 图层添加切换复选框。 但是,
我正在研究 RestKit 关系映射示例,但无法理解这些方法调用的目的是什么,或者调用中是否存在拼写错误。他们指的是什么?对象加载器何时会在这些关键路径处遇到内容? [objectManager.ma
marker.setMap(null) 调用不会从 map 中删除标记。 我已经确认 map 和标记变量指向正确的位置,但 setMap(null) 调用只是使标记在 map 上可见。 setVisi
当我跨浏览器测试我的站点并在 Safari 中尝试时,我的仪表板中的这个错误不知从何而来。它适用于 Chrome、Firefox 和 IE9,但适用于 Safari: 这是错误,我不知道这是哪里发生的
我是 Google map API v3 的新手。在谷歌地图官方教程中,部分示例代码使用 new google.maps.Marker({ map: map //Map option });
我在谷歌地图上使用了淘汰赛 javascrit,但我无法清除 map 上的标记,我在那里收到错误消息,错误如下 > Ripple :: Environment Warming Up (Tea. Ear
当我尝试在 map 中输入谷歌的系统位置时,它不起作用。屏幕保持空白。当我提出字符串“directionsDisplay.setMap (map);”时, map 会显示但不起作用。为什么 ?我将发布
我试图有一个按钮可以打开和关闭多个圆圈(显示/隐藏可见性)。假设我只有一个 html 按钮,并且我已经向该按钮添加了 google.maps.event.addDomListener,我见过的很多示例
我是一名优秀的程序员,十分优秀!