我已经开发了一个简单的谷歌地图应用程序及其在版本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”)。如果有人有任何想法如何解决这个问题,我将非常感激。
提前感谢任何想法。
答案 0 :(得分:1)
与EDIT2中一样,这个故障是由非标准dpi设置引起的。 Google对此的官方立场是将系统dpi更改为标准,因此目前可能没有可行的解决方案。希望这会随着时间而改变。
答案 1 :(得分:0)
可能是json
字符串是json = "{...}"
这样的字符串化对象吗?在这种情况下,将其括在圆形的parantheses中:
var opts = eval("(" + json + ")");
eval()
评估表达式,表达式不能以大括号开头。
编辑:更好的是
var opts = JSON.parse(json);