2011-07-27 4 views
0

私たちのアプリケーションでは、MapfishツールバーとExtJS3.2を使用しています。今、ExtJS3.2をExtJS4にアップグレードしようとしています。しかし、MapfishはExtJS4と連携していません。だから、私たちはExtJS4ツールバーを使用していますが、ツールバーのボタンのために書かれたコードは実行されていません。OpenLayersコードのExtJS4ツールバー

ExtJS4コードは次のとおりです。ここで

var extoolbar = Ext.create('Ext.toolbar.Toolbar',{ 
    border : true, 
    width : 100, 
    height : 40, 
    layout : hbox 
}); 

var btn1 = { 
    xtype : 'button', 
    enableToggle : true, 
    tooltip : "Zoom In", 
    id : 'zoominbtn', 
    listeners : { 
     'click' : fucntion(){ 
      new OpenLayers.Control.ZoomBox({ 
       alwaysZoom : true, 
       draw : function(){ 
        this.handler = new OpenLayers.Handler.Box(
         this, {done: this.zoomBox}, {keyMask: this.keyMask}); 
       } 
      }); 
     } 
    } 
}; 
extoolbar.add(btn1); 

我々はボタンコントロールでズームをクリックした場合OpenLayers.Control.ZoomBoxに起こっているが、draw方法が実行されていません。私の質問は次の通りです:

  1. コードに間違いがありますか?
  2. ExtJS4でOpenLayersにアプローチする方法はありますか?
+0

経験がないので、これはまた、役に立つかもしれません、知っています。http ://www.sencha.com/forum/showthread.php?132276-OpenLayers-wit h-ExtJS-4&p = 634056 –

答えて

1

私はMapFishもExt 3.4で使用しています。

あなたはその後、代わりにfunction() :)

fucntion()を持っているまず第一に、これは使用するための良い方法ではないことを、私はあなたが何をしたいのかを理解していないことが、私は-IMAO-と思うかもしれません押す

listeners: { 
    'toggle': function(button, pressed) { 
     var ctrl = map.getControl('yourid'); 
     if(pressed){ 
      // Activate the control 
      ctrl.activate(); 
     } else { 
      // Deactivate the control 
      ctrl.deactivate(); 
     } 
    } 
} 

この方法:ZoomBox制御... あなたは、このようなトグルイベントのリスナーを使用して、あなたはそれを作成しながら、マップにZoomBoxコントロールを追加し、コントロールにIDを与える必要がありますコントロールを有効にするボタン、もう一度押すと無効にします。 もシフト

を保持することにより、常に利用することも、あなたも、この

GeoExt.Action({ 
    map: map, 
    text: "Zoom Box", 
    control: new OpenLayers.Control.ZoomBox() 
}); 

のように、本当に簡単ですGeoExtを、使用することができます。しかし、私にはない、一度アクティブ、ZoomBox制御することを覚えておいてくださいGeoExtは内線あなたの質問のポイント2については4

でどのように機能するか、私は申し訳ありませんが、私はそれに答えることができない場合は、私が内線4.

+0

Mapfishのコンポーネントの一部をExtJS4.Itsにアップグレードしました。お返事ありがとうございます。 – Unknown

+1

あなたは大歓迎です!私はあなたにGISプログラミングのすべてを幸運にしたい、それは私を夢中にさせている!! :D – mokagio