2011-09-06 123 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