2013-04-22 137 views
1

我已经在Stackoverflow中发布了此问题,并且使用了不同的标题,但没有得到太多回复。再次发布这个时间再做一些澄清。当在Google地图上放大时,多边形颜色重叠

我已经使用V3 js API实现了谷歌地图。我在地图内绘制了大约500个邮政编码多边形。邮政编码多边形的颜色取决于某些工作正常的条件。就像我将不同的颜色分配给一组zipcode一样。但问题是,当我缩放地图时,某些多边形颜色与其他多边形颜色重叠。

例如:我从我的数据库拉30个邮编。我将这30个邮编分为5个区域(说取决于最高的销售额和最低的销售额)。每个区域将用特定的颜色标记。因此,在这种情况下,30个多边形将绘制5个区域,以具有5种不同的颜色。现在,当我缩放地图时,分组中没有变化,但其中一些多边形(可能是3-4)颜色与其他多边形重叠。如果3号区域在法线贴图中具有颜色“黄色”,则当我放大地图时,区域3的某些多边形会被“红色”颜色重叠。 “红色”颜色属于区域1邮政编码多边形。

这里是我已经找到了解决方案的代码

{% ifequal zip.rank 1 %} 
    var fillColor = '#FF0000'; 
{% endifequal %} 
{% ifequal zip.rank 2 %} 
    var fillColor = '#FF00D3'; 
{% endifequal %} 
{% ifequal zip.rank 3 %} 
    var fillColor = '#BE4BAA'; 
{% endifequal %} 
{% ifequal zip.rank 4 %} 
    var fillColor = '#BE88B5'; 
{% endifequal %} 
{% ifequal zip.rank 5 %} 
    var fillColor = '#857081'; 
{% endifequal %} 


var path = [ 
       {% for polycoord in zip.zip_info.zip_polygon %} 
        new google.maps.LatLng({{polycoord.1}}, {{polycoord.0}}), 
       {% endfor %} 
      ]; 
var polygon = new google.maps.Polygon(
    { 
     path:path, 
     clickable:true, 
     strokeColor: '#000000', 
     strokeOpacity: 0.75, 
     strokeWeight: 1, 
     fillColor: fillColor, 
     fillOpacity: 1, 
    } 

); 
polygon.setMap(map); 
+0

很难回答,没有看到任何代码,链接到地图会有所帮助。 – 2013-04-22 07:29:54

回答

1

。基本上所有的颜色都是通过服务器端脚本随机生成的,并传递给地图模板。用于生成随机颜色的脚本有时会给出5位数的颜色代码,这是浏览器无法理解的。因此,一些多边形区域正在采用附近的多边形区域颜色。现在我已经修改了服务器端脚本,以便如果脚本生成5位数的颜色代码,那么会在颜色代码中添加一个额外的随机数字,最终生成一个有效的颜色代码。