状況は次のとおりです。GMapPanelの子であるMapというクラスがあります。JSONを介してMapIncidentsにロードされたデータに基づいて、マップ上にマーカーを配置したいと思います。MapIncidents *内のJSONリクエストは非同期であり、まだ準備ができていないため、 Mapの初期化中にはそれを実行できないことがわかりました。代わりに、インシデント内のMapにリスナーを追加して、データが読み込まれたときに、マップにマーカーを追加するMap内のメソッドを実行するようにしました。さらに複雑にするために、markerclustererというクラスを使用して、ズームアウトしたときにマップにクラスタリングを追加しています。
これで、これらすべてを実行するコードができましたが、奇妙な理由で、二重マーカーが追加されているように見えます。つまり、クラスタリングでは、2つのマーカーが互いに重なり合っていると表示されます。
私が何を間違っているのかわからないので、ここで少し助けていただければ幸いです。コードをいくつかのペーストビンに貼り付けます。
Map.js(表示)-> http://pastebin.com/9xtBYYKt
MapIncidents.js(ストア)-> http://pastebin.com/uJnHkBSm
Incidents.js(コントローラー)-> pastbin.com/tjEc2xT5
GMapPanel.js(わずかに変更)-> pastbin.com/W7LTxV9s
markclusterer.js(google ampsから取得)-> pastbin.com/SiUkLhW2
Incident.js(モデル)
Ext.define('SF.model.Incident', {
extend: 'Ext.data.Model',
fields: ['incident', 'lat', 'lng']
});