0

Google マップを使用して、タブをクリックすると切り替わる非表示の div の下に表示しています。2 つの問題があります。関連している可能性があります。

  1. 地図が完全に表示されない
  2. マーカーは地図の中央ではなく、地図の左上にあります

コードを貼り付けています。間違っている場所や提案を教えてください。

    var map = new GMap2(document.getElementById(mapid));
    if( maptype == 'G_NORMAL_MAP' )
    {

        map.setCenter(new GLatLng(startLatitude,startLongitude ), 6);
        map.addControl(new GLargeMapControl());     
    }
    else if( maptype == 'G_SATELLITE_MAP' )
    {
        map.setCenter(new GLatLng(startLatitude,startLongitude ), 18);
        map.addControl(new GLargeMapControl());
        map.setMapType(G_SATELLITE_MAP);
        map.setUIToDefault();
        map.enableRotation();
    }
    else if( maptype == 'G_AERIAL_MAP' )
    {
        map.setCenter(new GLatLng(startLatitude,startLongitude ), 18);
        map.addControl(new GLargeMapControl());
        map.setMapType(G_AERIAL_MAP);
        map.setUIToDefault();
        map.enableRotation();
    }
    else if( maptype == 'G_AERIAL_HYBRID_MAP' )
    {
        map.setCenter(new GLatLng(startLatitude,startLongitude ), 18);
        map.addControl(new GLargeMapControl());
        map.setMapType(G_AERIAL_HYBRID_MAP);
        map.setUIToDefault();
        map.enableRotation();
    }

    // Add 10 markers to the map at random locations
    var bounds = map.getBounds();
    var southWest = bounds.getSouthWest();
    var northEast = bounds.getNorthEast();
    var lngSpan = northEast.lng() - southWest.lng();
    var latSpan = northEast.lat() - southWest.lat();
    var point = new GLatLng(startLatitude, startLongitude);
    map.setCenter(bounds.getCenter());

    map.addOverlay(new GMarker(point));

問題のスクリーンショット

4

4 に答える 4

1

このコードは、マーカーの中心が常に整列された Google マップをレンダリングします。

        var lattitude = data.getLatitude ;
        var longitude = data.getLongitude;
        var pointLatLong = new google.maps.LatLng(lattitude,longitude);
        var pointOptions = {
            zoom: 10,
            center: pointLatLong,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        var map = new google.maps.Map(document.getElementById("map-canvas"), pointOptions);
        var pointMarker = new google.maps.Marker({
            position: pointLatLong,
            title: ""
        });
        pointMarker.setMap(map);
        google.maps.event.addListenerOnce(map, "idle", function () {
            google.maps.event.trigger(map, "resize");
            map.setCenter( pointLatLong );
        });

参照: http://www.onlinekurukshetra.com/google-map-not-loading-completely/

于 2016-12-02T11:01:38.933 に答える
0

追加してみてください

var zoom = map.getZoom();
var center = map.getCenter();
map.checkResize();
map.setCenter(center,zoom);

マップdivを切り替えた後。

于 2012-09-13T08:02:03.713 に答える
0

マップ div のサイズを完全に定義するか、オプションの "size" 引数をコンストラクターに使用します。

map = new GMap2(document.getElementById(mapid),{size:new GSize(510,200)});

または、タブを開いた後、マップ オブジェクトで checkResize() メソッドを実行します。

于 2012-09-12T16:50:58.550 に答える
0

マーカーに次を追加してみてposition:map.getCenter()ください。マーカーがマップの中央に配置されるようにします

于 2012-09-12T10:52:16.130 に答える