2012-12-28 12 views
6

Googleマップ(多くのサークル、屋上)に多数の円を描こうとしています。Googleマップのサークルは円形ではありません

サークルクラスを試してみましたが、大きなサークルは大丈夫ですが、小さなものを描画するとまったく丸くありません。

私が使用しているコードはこのように書き:

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

Symbolsを使用できます。完全な円でなければなりません。これを試してみてください:

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); 
} 

円は巨大である可能性が高いので、それが権利を取得する規模で遊んで。

サークルクラスは一度も使用していません。シンボルは今年のGoogle I/Oに導入されました。それらはベクトルです。つまり、自分の形をかなり定義することができます。詳細はこちらのリンクをご覧ください: googlegeodevelopers.blogspot.com/2012/06/powerful-data-visualization-with.html

+0

ありがとう、それは仕事をします。しかし、パフォーマンスはそれほど効率的ではありません(ただし、google.maps.Circleはありません)。 – Nicolas

+0

パフォーマンスには分かりません。私は最近、画像の代わりにベクトルに切り替えました。それらを編集することは、マーカーを切り替えることよりはるかに簡単です。私はイメージをたくさん描いていませんが、Gmapsでの経験から、あまりにも多くのマーカーが遅くなります(フラッシュマップの日を除いて) –

+0

私は最終的にカスタムメーカーと一緒に円色のために異なるpngを使いました。 sizeプロパティを使ったスケーリング – Nicolas

-2

アンチエイリアスは非常に重要です。

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

、Googleのソリューションは、小さな円のために動作しません。

+8

「g2d」とは何ですか? – Nicolas

+2

@Nicolasは[java](http://docs.oracle.com/javase/7/docs/api/java/awt/RenderingHints.html)のようです –

関連する問題