Tuesday 18 September 2012

Google Map API を使ってフロント開発

久しぶりにRailsを使ってフロント開発です。Google Maps APIを使用した地図上に会社の位置を表示する内容です。

コントローラのコードは1行だけで

class MyController < ApplicationController
  def map
    @companies = Company.all
  end
end

モデルも今回は大して触りません。

あとはひたすらテンプレートとJavaScriptの編集作業です。

Google Maps APIはバージョン3になってかなりできることの範囲が広がったようで、特にRails用のプラグインなど使用しなくても大きな幅でカスタマイズが可能です。ただコマーシャルユースの場合はライセンスが必要で、社内利用のサイトだとサービスに問い合わせると、USD$11,000 for 250,000 page views per yearという返事が返ってきました。安くはありませんね。

Google Mapsは独自の google.maps.event.addListener などのメソッドを提供していて、その挙動と一つづつ試しながらなので、一進一退のゆっくり作業です。ちょっと面倒…。jQueryと組み合わせてゆっくりゆっくり開発です。

マーカーのDOMを取得できないという質問がウェブにあり、これは大変そうだなと思ったのですが、


marker = new google.maps.Marker({
position: m_position,
id: "8iu3afluh"
});


google.maps.event.addListener(marker, "click", function() {
  alert(this.id);
});

などとすれば設定したマーカーの id: 8iu3afluh が返って来るので、とにかくこれで問題無さそうです。

No comments:

Post a Comment