1

我试图将我的谷歌地图的中心设置为我使用谷歌地图 Api V3 定义的 2 个标记。但它只居中第一个标记,即位置标记。我有这个呈现地图的代码:

    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);

}

日志记录正确的坐标。地图显示: 点击这里查看地图

但我的愿望是这样的: 点击这里查看我的愿望

我不知道该怎么做,我的意思是我从几个小时开始就在寻找解决方案,但是网络中的每个解决方案都不适用于我的应用程序..

有人知道我做错了什么吗?我希望我发布您需要的所有信息来帮助我的薄弱开发经验;)

4

2 回答 2

1

在我看来,您的纬度和经度方向错误:

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”对象中的变量),那么这将影响边界,这可能是问题所在。

于 2012-09-27T10:33:39.763 回答
0

得到了答案。谢谢大家。

问题是,

useCurrentLocation : {
        autoUpdate : false
    },

自动将 locationMarker 居中。

我通过使用没有 sencha touch 实现的定位方法的 html5 地理位置解决了 ist。

感谢您的帮助!

于 2012-10-01T04:34:14.453 回答