Google地图对象无法正确创建

时间:2013-12-09 23:44:30

标签: google-maps google-maps-api-3

我有以下代码。在我们的开发环境(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服务器名称。

1 个答案:

答案 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(我们通常不会碰到它)