不動産屋のラノベ読み

不動産売買営業だけどガチガチの賃貸派の人のブログ

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

 *1まあ、これも結構黒魔術的ですので、自己責任で。
 
 あと、見てのとおり、getPoint メソッドを getBounds の getCenter で代替しているので、表示域に対してオーバーレイが十分に小さくないと動作がおかしくなるはずです、試してないけど。
 

*1:packしていないコード用です