Javascript Google Map Api v3多段线和多边形打断

Javascript Google Map Api v3多段线和多边形打断,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我已经开发了一个简单的谷歌地图应用程序,其api版本为3。由于在我的机器上一切正常,我把它发给了我的同事,他报告说,在他的计算机上,多段线以随机方式断裂并移动其部分(如图所示)。类似的事情也发生在区域上,区域的一部分填充也会随着轮廓的出现而消失 多段线的代码非常简单: var opts = eval(json); var options = { strokeColor: opts.color, strokeOpacity: opts.opacity, strokeWeig

我已经开发了一个简单的谷歌地图应用程序,其api版本为3。由于在我的机器上一切正常,我把它发给了我的同事,他报告说,在他的计算机上,多段线以随机方式断裂并移动其部分(如图所示)。类似的事情也发生在区域上,区域的一部分填充也会随着轮廓的出现而消失

多段线的代码非常简单:

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);
我真的不知道这是什么原因。这看起来像是google地图渲染中的错误。这种情况每次都发生在他身上,而且发生在不一致的领域。该同事正在使用IE9,而我(和其他同事,也没有遇到此错误)正在使用IE8

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

编辑: 我已经将IE升级到9版,在我的电脑上仍然可以正常工作,所以这不是IE版本的问题

编辑2: 这是由于同事系统上的dpi不正常造成的。较高的dpi值会导致google maps渲染不正确。我对谷歌的研究没有给出任何有用的解决方案(除了微不足道的“改变你的dpi”)。如果有人知道如何解决这个问题,我将不胜感激


提前感谢您的建议。

可能是
json
字符串是一个类似
json=“{…}”
的字符串化对象吗?在这种情况下,请将其用圆括号括起来:

var opts = eval("(" + json + ")");
eval()
计算表达式,表达式不能以大括号开头

编辑:最好是

var opts = JSON.parse(json);

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

json是在c#中生成的,类似于:“({…})”,因此以开头(并以结尾),所以情况并非如此,但感谢您的回答为什么使用eval()?如前所述,它会故意解决表达式?如果只有一个小表达式:假设ISO8601日期从2011年8月23日减少到1980年-因为它进行了计算…您能发布准确的json字符串吗?值当然会根据情况而变化,但下面是一个示例:({颜色:'#FF0000',权重:1,不透明度:1.0,点:'someEncodedPoints',级别:'someEncodedLevels',缩放因子:16,numLevels:4})解码路径看起来如何?我的意思是在
解码路径(…)之后
@Jiri:这是一个google.maps.LatLng对象数组,其坐标与编码前提供的坐标相同,与setPath需要它来获取此答案的坐标完全相同。您找到了其他方法吗?@writeToBhuwan很遗憾,我没有找到,但公平地说,我没有寻找任何方法,因为这是一个答案。