Google maps Sencha Touch 2+;映射Api-fitbounds()不';行不通
我试图用谷歌地图Api V3将我的谷歌地图的中心设置为我的2个已定义标记。 但它只以第一个标记为中心,即locationmarker。 我有以下代码来渲染地图:Google maps Sencha Touch 2+;映射Api-fitbounds()不';行不通,google-maps,sencha-touch-2,google-maps-markers,Google Maps,Sencha Touch 2,Google Maps Markers,我试图用谷歌地图Api V3将我的谷歌地图的中心设置为我的2个已定义标记。 但它只以第一个标记为中心,即locationmarker。 我有以下代码来渲染地图: openShops : function(data) { if (Ext.ComponentManager.get('shops-details') == undefined) { Ext.create('Oxfam.view.ShopsDetails'); } var shopsDet
openShops : function(data) {
if (Ext.ComponentManager.get('shops-details') == undefined) {
Ext.create('Oxfam.view.ShopsDetails');
}
var shopsDetailsPage = Ext.ComponentManager.get('shops-details');
Ext.Viewport.setActiveItem(shopsDetailsPage);
var bounds;
var map = Ext.create('Ext.Map', {
id : 'shopMap',
xtype : 'map',
useCurrentLocation : {
autoUpdate : false
},
listeners : {
maprender : function(comp, map) {
var image = 'img/oxfamLogoSmall.png';
var locationMarker = new google.maps.Marker({
position : new google.maps.LatLng(this._geo
.getLatitude(), this._geo.getLongitude()),
map : map
});
var shopCoord = new google.maps.LatLng(sessionStorage
.getItem('longitude'), sessionStorage
.getItem('latitude'));
var locCoord = new google.maps.LatLng(this._geo
.getLatitude(), this._geo.getLongitude());
bounds = new google.maps.LatLngBounds();
var shopMarker = new google.maps.Marker({
position : new google.maps.LatLng(sessionStorage
.getItem('longitude'), sessionStorage
.getItem('latitude')),
map : map,
icon : image
});
bounds.extend(shopCoord);
bounds.extend(locCoord);
console.log(shopCoord);
map.fitBounds(bounds);
},
}
});
shopsDetailsPage.setItems(map);
}
日志记录正确的坐标。
地图显示:
但我的愿望是这样的:
我不知道该怎么办,我的意思是我从几个小时以来一直在寻找解决方案,但是网络上的每个解决方案都不能在我的应用程序中运行
有人知道我做错了什么吗?
我希望我能发布所有你需要的信息来帮助我的发展经验;) 在我看来,你的纬度和经度是错误的:
var shopCoord = new google.maps.LatLng(sessionStorage
.getItem('longitude'), sessionStorage
.getItem('latitude'));
在这里:
var shopMarker = new google.maps.Marker({
position : new google.maps.LatLng(sessionStorage
.getItem('longitude'), sessionStorage
.getItem('latitude')),
map : map,
icon : image
});
如果是这种情况(并且您不仅仅是错误地标记了“sessionStorage”对象中的变量),那么这将影响边界,这可能就是问题所在。在我看来,纬度和经度是错误的:
var shopCoord = new google.maps.LatLng(sessionStorage
.getItem('longitude'), sessionStorage
.getItem('latitude'));
在这里:
var shopMarker = new google.maps.Marker({
position : new google.maps.LatLng(sessionStorage
.getItem('longitude'), sessionStorage
.getItem('latitude')),
map : map,
icon : image
});
如果是这种情况(而且您不仅仅是错误地标记了“sessionStorage”对象中的变量),那么这将影响边界,这可能就是问题所在。得到了答案。
谢谢大家
问题是
useCurrentLocation : {
autoUpdate : false
},
自动使locationMarker居中
我通过使用html5地理定位解决了ist问题,没有使用sencha touch实现的定位方法
谢谢你们的帮助 得到了答案。
谢谢大家
问题是
useCurrentLocation : {
autoUpdate : false
},
自动使locationMarker居中
我通过使用html5地理定位解决了ist问题,没有使用sencha touch实现的定位方法
谢谢你们的帮助 您是否尝试设置地图的缩放?尝试map.setZoom(n),n在12到16之间。是的,但问题是,zoomlevel应该是动态的,因为坐标并不总是相同的。手动设置zoomlevel可能会出现问题,因为在很大范围内显示两个标记,因此只能看到其中一个。但是谢谢你尝试解决这个问题:很抱歉没有。谢谢你的帮助!您是否尝试设置地图的缩放?尝试map.setZoom(n),n在12到16之间。是的,但问题是,zoomlevel应该是动态的,因为坐标并不总是相同的。手动设置zoomlevel可能会出现问题,因为在很大范围内显示两个标记,因此只能看到其中一个。但是谢谢你尝试解决这个问题:很抱歉没有。谢谢你的帮助!是的,你是对的。我把它错贴在我的会话存储中了。现在我正确地命名了它,并再次检查了它。但不幸的是,也存在同样的问题:/->locationmarker位于bounds对象的中心,所有对象都是4个坐标(2个纬度,2个经度)useCurrentLocation参数是否可能始终位于当前位置的中心?#感谢您的帮助。我找到了问题所在:usecurrentLocation参数会自动在位置上设置地图的中心。如果我对它进行注释并尝试使用fix坐标,那么它就可以正常工作。现在我正在寻找一个解决方案来禁用这个“自动中心”。是的,你是对的。我把它错贴在我的会话存储中了。现在我正确地命名了它,并再次检查了它。但不幸的是,也存在同样的问题:/->locationmarker位于bounds对象的中心,所有对象都是4个坐标(2个纬度,2个经度)useCurrentLocation参数是否可能始终位于当前位置的中心?#感谢您的帮助。我找到了问题所在:usecurrentLocation参数会自动在位置上设置地图的中心。如果我对它进行注释并尝试使用fix坐标,那么它就可以正常工作。现在我正在寻找一个解决方案来禁用这个“自动中心”。