Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图标记不居中_Javascript_Google Maps_Google Maps Markers_Google Maps Api 2 - Fatal编程技术网

Javascript 谷歌地图标记不居中

Javascript 谷歌地图标记不居中,javascript,google-maps,google-maps-markers,google-maps-api-2,Javascript,Google Maps,Google Maps Markers,Google Maps Api 2,我正在使用Google Maps在一个隐藏的div下显示,该div在单击选项卡时切换,我有两个问题,可能它们相关: 这张地图没有完全显示出来 标记在地图中不居中,它位于地图的左上角 我正在粘贴代码,请指导我哪里有错误或任何建议 var map = new GMap2(document.getElementById(mapid)); if( maptype == 'G_NORMAL_MAP' ) { map.setCenter(new GLatLng(st

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

  • 这张地图没有完全显示出来
  • 标记在地图中不居中,它位于地图的左上角
  • 我正在粘贴代码,请指导我哪里有错误或任何建议

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

    尝试为标记添加:
    位置:map.getCenter()
    ,以便标记在地图上居中

    完全定义映射div的大小,或对构造函数使用可选的“size”参数:

    map = new GMap2(document.getElementById(mapid),{size:new GSize(510,200)});
    
    或者在打开选项卡后对地图对象运行checkResize()方法,然后尝试添加

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

    切换map div.

    之后,此代码每次呈现标记中心对齐的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 );
            });
    

    参考:

    您的语法是API V2,它已被弃用,可能随时停止工作。考虑升级到当前版本(v3)。我不能在这个阶段,我必须完成这项工作,现在你可以发布一个链接到一个地图(或一个JSFIDLE)来显示这个问题(或者你在上面尝试过并且没有用过)?不知道你在用什么浏览器,但是在Chrome中它什么都不做。我在要初始化的body onload调用中得到一个可能不相关的“initialize”未定义,然后从v2配额服务中得到一个“加载资源失败:服务器响应状态为403(禁止)”。看起来您正在使用的密钥未对此域启用。chromer/firfox 15.0,即,尽管如此,初始化()与映射无关,在单击映射选项卡时调用脚本类型错误:map.checkResize不是函数