1

Google Map Api V3 を使用して、Google マップの中心を 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);

}

ログは正しい座標を記録します。地図はこれを示しています:地図 を見るにはここをクリックしてください

しかし、私の願いはこのようなものです: 私の願いを見るにはここをクリックしてください

何をすべきかわかりません。つまり、何時間も解決策を探していますが、ネット内のすべての解決策が私のアプリケーションで機能していません..

誰が私が間違っているのか分かりますか? 私の貧弱な開発経験を助けるために必要なすべての情報を投稿することを願っています;)

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 に答える