2009-04-20
■[WEB作成]GMarkerManagerでGPolygonを管理する
Google Maps API には GMarkerManager というクラスがあって、これを使うと大量のマーカーを使っても負荷が少なくなるというものなんですが。
ただ、残念ながら、これは GPolygon クラスのようなマーカー以外のオーバーレイを管理できないです。
で。
いろいろ触っていたらなんか使えてる風になったので、書いときます。
コード
GPolygon.prototype.D = function(){ return this.getBounds().getCenter() }
以上のコードを addMarker メソッドを使う前に実行して下さい。それで動いてる感じになります。
サンプル
http://lhankor-mhy.appspot.com/mmtest
「GMarkerManager」を使うと「addOverlay」を使うより、多少処理が軽くなっているのが分かると思います。2000件ぐらいで試すと分かりやすいかな?
注意点
GPolygon.prototype.D という書き方は黒魔術的なので、MarkerManager を使った方がいいのかも。その際は以下のようなコードで動くはずです、試してないけど。
GPolygon.prototype.getPoint = function(){ return this.getBounds().getCenter() }
あと、見てのとおり、getPoint メソッドを getBounds の getCenter で代替しているので、表示域に対してオーバーレイが十分に小さくないと動作がおかしくなるはずです、試してないけど。
参考
Google Maps API リファレンス - Google Maps API - Google Code
GMarkerManagerで表示したマーカーを消すには。 - Google-Maps-API-Japan | Google Groups
*1:packしていないコード用です
