0

我正在使用 Google Maps 在隐藏的 div 下显示,该 div 在单击选项卡时会切换,我有两个问题,也许它们是相关的:

  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

此代码每次都使用标记中心对齐来渲染谷歌地图。

        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

完全定义地图 div 的大小,或者使用构造函数的可选“size”参数:

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

或打开选项卡后在地图对象上运行 checkResize() 方法

于 2012-09-12T16:50:58.550 回答
0

尝试添加

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

切换地图 div 后。

于 2012-09-13T08:02:03.713 回答
0

尝试添加:position:map.getCenter()为标记,使您的标记在地图上居中

于 2012-09-12T10:52:16.130 回答