谷歌地图Api v3折线和多边形打破

时间:2011-08-23 09:07:54

标签: javascript google-maps-api-3

我已经开发了一个简单的谷歌地图应用程序及其在版本3中的api。由于我的机器上的一切工作正常,我将它发送给我的同事,他的同事报告说他的计算机折线断开并随机改变其部分(如图所示here)。类似的事情也发生在地区,这些地区的部分填充也随着概述而变化。

折线的代码非常简单:

var opts = eval(json);
var options = {
    strokeColor: opts.color,
    strokeOpacity: opts.opacity,
    strokeWeight: opts.weight,
    geodesic: true
}; 
var line = new google.maps.Polyline(options);

line.setPath(google.maps.geometry.encoding.decodePath(opts.points));
line.setMap(map);

我无法弄清楚这是什么原因。这看起来像谷歌地图渲染中的错误。每次和不一致的地方都会发生这种情况。该同事正在使用IE 9,而我(和其他同事,也没有遇到此错误)IE 8。

所以我问是否有人遇到过类似的问题,或者知道是什么导致了这个问题。

编辑: 我已经将我的IE更新到了版本9,并且在我的电脑上仍能正常工作,因此它不是IE版本问题。

编辑2: 它是由同事系统上的正常dpi引起的。较高的dpi值会导致谷歌地图呈现不正确。我对谷歌的研究没有给出有用的解决方案(除了琐碎的“改变你的dpi”)。如果有人有任何想法如何解决这个问题,我将非常感激。

提前感谢任何想法。

2 个答案:

答案 0 :(得分:1)

与EDIT2中一样,这个故障是由非标准dpi设置引起的。 Google对此的官方立场是将系统dpi更改为标准,因此目前可能没有可行的解决方案。希望这会随着时间而改变。

答案 1 :(得分:0)

可能是json字符串是json = "{...}"这样的字符串化对象吗?在这种情况下,将其括在圆形的parantheses中:

var opts = eval("(" + json + ")");

eval()评估表达式表达式不能以大括号开头。

编辑:更好的是

var opts = JSON.parse(json);