Google maps Sencha Touch 2+;映射Api-fitbounds()不';行不通

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

我试图用谷歌地图Api V3将我的谷歌地图的中心设置为我的2个已定义标记。 但它只以第一个标记为中心,即locationmarker。 我有以下代码来渲染地图:

    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坐标,那么它就可以正常工作。现在我正在寻找一个解决方案来禁用这个“自动中心”。