2012-12-28 217 views
6

我想在谷歌地图上画很多圈(每个屋顶上有很多圈)。谷歌地图圈不是圆的

我试过Circle类,看起来对于大圆圈来说没问题,但是当画小圆点时,它们根本不是圆的。

我正在使用的代码是这样的:

for(var i = 0; i < latitudes.length; i++) 
    var newCircle = new google.maps.Circle({ 
     strokeColor: "#FFFFFF", 
     strokeOpacity: 0, 
     strokeWeight: 1, 
     fillColor: "#FFFFFF", 
     fillOpacity: 1, 
     map: map, 
     center: new google.maps.LatLng(latitudes[i], longitudes[i]), 
     radius: 0.5 
    }); 
    newCircle.setMap(map); 

,其结果是:google map with white circles

我知道还有其他方法在谷歌地图上画点,但我如果有办法让他们看起来应该是圆的,那么他们真的很喜欢Google解决方案。

回答

9

你可以使用符号,它们应该是完美的圆圈。试试这个:

var whiteCircle = { 
    path: google.maps.SymbolPath.CIRCLE, 
    fillOpacity: 1.0, 
    fillColor: "white", 
    strokeOpacity: 1.0, 
    strokeColor: "white", 
    strokeWeight: 1.0, 
    scale: 1.0 
}; 

然后

for(var i = 0; i < latitudes.length; i++) { 
    var latLng = new google.maps.LatLng(latitudes[i], longitudes[i]) 
    var newCircle = new google.maps.Marker({ 
     icon: whiteCircle, 
     position: latLng 
    }); 
    newCircle.setMap(map); 
} 

的圈子可能是巨大的,所以玩的规模得到它的权利。

我从来没有使用Circle类。符号是在今年的Google I/O中引入的。它们是矢量,意味着你几乎可以定义自己的形状。以下是更多信息的链接: googlegeodevelopers.blogspot.com/2012/06/powerful-data-visualization-with.html

+0

谢谢,它的工作。但是,他们不是非常有效的性能方面(google.maps.Circle in't虽然) – Nicolas

+0

我不知道性能方面。我只是最近才切换到矢量而不是图像。编辑它们比切换标记要容易得多。我没有画出很多图像,但是从我对Gmaps的体验中,太多的标记会减慢它的速度(除了在Flash地图的日子里回来) –

+0

我终于和定制者一起去了,使用不同的png作为圆形颜色,使用大小属性缩放 – Nicolas

-2

消除锯齿至关重要。

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)

的谷歌的解决方案不会为小圆圈工作。

+8

对不起,但是'g2d'是什么? – Nicolas

+2

@Nicolas似乎是[java](http://docs.oracle.com/javase/7/docs/api/java/awt/RenderingHints.html) –