我有以下代码。在我们的开发环境(Server 2008运行IIS7)上,它创建了地图并显示正常。但是在我们的暂存环境(运行IIS6的Server 2003)上,它获取了一个无法使用的地图对象。两台服务器都被IE11客户端击中。我也尝试过使用Chrome和Safari浏览器并获得相同的结果。)
var mapOptions = {
scaleControl: false,
draggable: true,
//overviewMapControl: true,
//overviewMapControlOptions:{opened:true},
mapTypeId: google.maps.MapTypeId.HYBRID,
mapTypeControl: false,
panControl: false,
rotateControl: true,
zoomControl: true,
scaleControl: true,
streetViewControl: false
};
//divMap is the Id for the div I want the map to be container i
var mapElement = document.getElementById(divMap);
var m_objMap = new google.maps.Map(mapElement, mapOptions);
var m_cpo = new CanvasProjectionOverlay();
m_cpo.setMap(m_objMap);
CanvasProjectionOverlay代码(取自另一个StackOverflow帖子) CanvasProjectionOverlay (scroll down to answer)
function CanvasProjectionOverlay() { }
CanvasProjectionOverlay.prototype = new google.maps.OverlayView();
CanvasProjectionOverlay.prototype.constructor = CanvasProjectionOverlay;
CanvasProjectionOverlay.prototype.onAdd = function () { };
CanvasProjectionOverlay.prototype.draw = function () { };
CanvasProjectionOverlay.prototype.onRemove = function () { };
从这一点开始,我尝试用m_objMap做的任何事情似乎都失败了。
错误消息的一个示例是:
“ setMap:不是Map的实例,也不是StreetViewPanorama的实例”。
有没有人对调试方向有任何想法?我一直在看这个。谷歌API服务是相同的,两个服务器的HTML之间唯一不同的是URL服务器名称。
答案 0 :(得分:0)
发现了这个问题。有人将一个版本的Google API(版本2.0)链接放在Microsoft.Net/Framework文件夹下的web.config文件中。我们所有其他机器都在Machine.config中具有该设置。
当我比较Google API时,我正在比较Machine.config文件。我盯着一个空白的HTML页面并复制了页面的一个“部分”,直到它破了。当我这样做时,我注意到API行与我在Machine.config中的不同。又花了30-45分钟才意识到其他人把它放进了web.config(我们通常不会碰到它)