大家好,我想简单地将Sencha Touch 2地图对象设置为特定的邮政编码。我将配置设置为{useCurrentLoction:true},它工作正常,但经过几个小时的研究后,我似乎无法找到一种方法来告诉地图对象重新定位到另一个城市,或者地址或特别是其他地方的邮政编码我们。
看起来Google API具有这些功能,但其中包括:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
无法识别Google在其文档中使用的API调用。 Google表示要获取API访问密钥,但这需要从多个位置运行,因此我希望无需获取密钥即可实现此目的。
是否有人能够使用上述访问的API(maps.google.com/maps/api/js?sensor=true)重新定位Sencha Touch 2地图对象?
谢谢!
答案 0 :(得分:0)
只需在HTML文件中加入<script src="http://maps.google.com/maps/api/js?sensor=true"></script>
然后在你的视图中创建一个xtype映射,然后在监听器中添加一个如下所示的事件:
listeners:
{
painted: function( component, eOpts ) {
console.log("Entered paint");
gotoAddress();
var map = Ext.getCmp('mymap');
map.setMapCenter(addr);
}
}
// Location function add the parameter as desired address to navigate.
// This also includes showing mapper and info window
function gotoAddress() {
var address = "enter the address required";
var map = Ext.getCmp('mymap');
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
addr= results[0].geometry.location;
map.setMapCenter(results[0].geometry.location);
marker.setMap(map.getMap());
marker.setPosition(results[0].geometry.location);
infowindow.setContent(address);
infowindow.open(map.getMap(),marker);
} else {
alert('Sorry Address could not be traced: ' + status);
}
});
}
注意:Paint是每次导航到您已使用地图的页面时调用的事件。创建此页面时,只会创建一次Initialize事件。