2011-09-06 84 views
0

我想弄清楚ExtJS和谷歌地圖在一起玩的很好。我在玩這個例子:http://dev.sencha.com/deploy/ext-4.0.0/examples/window/gmap.htmlExtJS和谷歌地圖

當我試圖解決地圖時,我迷路了。我希望能夠以編程方式更改縮放級別,繪製多邊形並在地圖上放置點。

我一直在玩,所以我的代碼和示例中的代碼不一樣。

我已經定義了一個表單面板,並且已經將地圖嵌入了它。我有一個等待映射的監聽器的顯示效果:

listeners:{ 
      afterrender: { 
       fn: setupWindow, 
       scope: this 
      } 
     } 

然後,裏面setupWindow我有這樣的:

gmap.setzoom(25); 
mapBounds = new gmap.LatLngBounds(
       new gmap.LatLng(responseJson.minY, responseJson.minX), 
       new gmap.LatLng(responseJson.maxY, responseJson.maxX) 
       ); 

但它在那裏失敗。我究竟做錯了什麼?

+0

(只是添加評論,因爲它不是真的回答你的問題)。你有沒有嘗試OpenLayers,它提供了訪問gmap v3 +漂亮的矢量圖層? – pef

+0

我有,但例子只有v2? – jeffkolez

+0

如何處理點擊事件 – Sultan

回答

2

因爲你是在該行有問題的人之前調用gmap.setZoom(25) - 我認爲gmap是像這樣的GMap2一個實例:

var gmap = new GMap2(...);

如果情況確實如此 - 那麼new gmap.LatLngBoundsnew gmap.LatLng應失敗,因爲這兩者都不是map的函數(除非將其添加到代碼中)。

什麼,你或許應該做的卻是:

mapBounds = new GLatLngBounds(
        new GLatLng(responseJson.minY, responseJson.minX), 
        new GLatLng(responseJson.maxY, responseJson.maxX) 
       ); 

編輯:澄清我的假設 - 從您嘗試使用它似乎您試圖去與API V2 ExtJS的例子。

+0

也許我不明白GMaps,但是......在這裏新增了什麼GMap2(...);?我試過這個:var gmap = ext.get(「gmappanel」) – jeffkolez

+0

我不太明白你的問題。你問我省略號在'GMap2(...)'中意味着什麼?在這種情況下 - 我簡單地不知道你是如何實例化你的gmap實例的。 「Ext.get('gmappanel')」僅僅意味着你在其他地方創建了它。可能在ExtJS應用程序的某個面板的'initComponent'中。 – ZenMaster

+0

我當時是個白癡。我想清楚你的意思。謝謝你的幫助。 – jeffkolez

1

那麼......您正在嘗試使用Google Maps v3,而ExtJS示例是使用GMap v2構建的。

此外,就像ZenMaster指出的那樣,在嘗試使用GMap API時會遇到一些混亂。 gmap變量從哪裏來?在v3中使用new google.maps.LatLng,或者在v2中使用new GLatLng

+0

啊...我明白了。 LatLng只是V3 ... V3的確如此。 – ZenMaster