2012-05-12 13 views
1

私はバックボーンアプリケーションの開発を考えていますが、私は正しい方法について考えているかどうかはわかりません。Googleマップとbackbone.js

これは私の最初のバックボーンアプリケーションになります。基本的には、Googleマップを「メイン」ビューとして持つシンプルなアプリを開発したいと考えています。

アイデアは、APIからモデルに位置情報をフェッチして、マーカーとし、これらのマーカーが地図上に表示されるようにすることです。

私は、マップビューにマーカーを接続する方法を確認していない:

  1. マップビューはaddMarker()関数を持っているべきですか?
  2. マーカーのレンダリング方法でマップにマーカーを追加する必要がありますか?

答えて

5

マーカーのCollectionを作成し、ビューのinitialize関数に渡すのはどうですか?

マーカーコレクションが変更されるたびに、changeイベントをバインドしてマップを更新することができます。次に、あなたがaddコレクションにマーカーを付けるたびに、マップビューはコレクション内の変更をキャッチし、マーカーを追加し、必要に応じて調整して調整することができます。ビューを初期化したい場合は

// in Backbone.View 
initialize: function (opts) { 
    _.bindAll(this); 
    this.markers = opts.markers; 
    this.markers.on('change', this.render); 
}, 

render: function() { 
    // create or update the map 
} 

が、あなたは今、このようなものを使用することができます:

var markers = new MyApp.MarkerCollection(), 
    view = new MyApp.MapView({ markers: markers }); 

は例えば、これらの行のビューを作成します