Google maps api 3 用于显示web的Google地图API(类似于Google.plus服务巡更)

Google maps api 3 用于显示web的Google地图API(类似于Google.plus服务巡更),google-maps-api-3,customization,google-maps-styled,Google Maps Api 3,Customization,Google Maps Styled,我正在尝试做类似的事情: 即我的目标是: 限制地图的范围和缩放(可能会在用户滚动超出范围后使地图始终滚动回中心) 创建包含html的覆盖图 有人认为第1点的解决方案比:?更好吗?我想你在#1中寻找的秘密是imageMapTypeOptions中的minZoom和maxZoom设置。文件载于 at的解决方案使用了不推荐的Google Maps API v2,但at的页面使用了Google Maps API v3,因此他们可能采用了完全不同的方式 下面是Google页面的基本操作方式: functi

我正在尝试做类似的事情:

即我的目标是:

  • 限制地图的范围和缩放(可能会在用户滚动超出范围后使地图始终滚动回中心)
  • 创建包含html的覆盖图

  • 有人认为第1点的解决方案比:?

    更好吗?

    我想你在#1中寻找的秘密是
    imageMapTypeOptions
    中的
    minZoom
    maxZoom
    设置。文件载于

    at的解决方案使用了不推荐的Google Maps API v2,但at的页面使用了Google Maps API v3,因此他们可能采用了完全不同的方式

    下面是Google页面的基本操作方式:

    function initMap() {
        var mapOptions = {backgroundColor: MAP_BACKGROUND_COLOR,
                          center: new google.maps.LatLng(MAP_INIT_LAT, MAP_INIT_LNG),
                          zoom: 6,
                          zoomControl: true,
                          zoomControlOptions:{
                              style: google.maps.ZoomControlStyle.LARGE,
                              position: google.maps.ControlPosition.LEFT_BOTTOM
                          },
                          panControl: true,
                          panControlOptions: {
                              position: google.maps.ControlPosition.LEFT_BOTTOM
                          },
                          mapTypeControl: false,
                          mapTypeControlOptions: {
                              mapTypeIds: [MAP_TYPE_NAME]
                          },
                          disableDoubleClickZoom: true
        };
        map = new.google.maps.Map(document.getElementById("mapCanvas"), mapOptions);
        var imageMapTypeOptions = {getTileUrl: getTileUrl,
                               tileSize: new google.maps.Size(MAP_TILE_SIZE, MAP_TILE_SIZE),
                               isPng: false,
                               minZoom: MIN_ZOOM,
                               maxZoom: MAX_ZOOM,
                               name: MAP_TYPE_NAME
        };
        map.mapTypes.set(MAP_TYPE_NAME, new google.maps.ImageMapType(imageMapTypeOptions));
        map.setMapTypeId(MAP_TYPE_NAME);
        initMarkers();
        google.maps.event.addListener(map, "zoom_changed", onZoomChanged);
        mapIdleListener = google.maps.event.addListener(map, "idle", onMapLoaded);
        onZoomChanged()
    }
    
    function onZoomChanged() {
        featureButtonsActivated && closeInfobox();
        var a = map.getZoom();
        for (id in section)
            section[id].type != TYPE_FEATURE && (a >= section[id].zoom.min && a <= section[id].zoom.max ? createMarker(id) : removeMarker(id))
    }
    
    function getTileUrl(point, number) {
        return getTilesFrom('http://www.gstatic.com/plus/demo/', point, number)
    }
    
    function getTilesFrom(cdnUrl, point, number) {
        point = getNormalizedCoord(point, number);
        if (!point)
            return null;
        cdnUrl = cdnUrl + "/" + number + "-" + point.x + "-" + point.y + ".jpg";
        switch (number) {
            case 2:
                if (point.y <= 0 || point.y >= 3)
                    cdnUrl = WHITE_TILE_PATH;
                break;
            case 3:
                if (point.y <= 1 || point.y >= 6)
                    cdnUrl = WHITE_TILE_PATH;
                break;
            case 4:
                if (point.y <= 4 || point.y >= 11)
                    cdnUrl = WHITE_TILE_PATH;
                break;
            case 5:
                if (point.y <= 10 || point.y >= 22)
                    cdnUrl = WHITE_TILE_PATH;
                break;
            case 6:
                if (point.y <= 21 || point.y >= 43)
                    cdnUrl = WHITE_TILE_PATH
        }
        return cdnUrl;
    }
    
    函数initMap(){
    var mapOptions={backgroundColor:MAP\u BACKGROUND\u COLOR,
    中心:新的google.maps.LatLng(MAP_INIT_LAT,MAP_INIT_LNG),
    缩放:6,
    动物控制:对,
    ZoomControl选项:{
    样式:google.maps.ZoomControlStyle.LARGE,
    位置:google.maps.ControlPosition.LEFT_底部
    },
    泛控制:对,
    全控选项:{
    位置:google.maps.ControlPosition.LEFT_底部
    },
    mapTypeControl:false,
    mapTypeControlOptions:{
    MapTypeId:[地图类型名称]
    },
    禁用双击缩放:真
    };
    map=new.google.maps.map(document.getElementById(“mapCanvas”)、mapOptions);
    var imageMapTypeOptions={getTileUrl:getTileUrl,
    tileSize:新的google.maps.Size(MAP\u TILE\u Size,MAP\u TILE\u Size),
    isPng:错,
    最小缩放:最小缩放,
    最大缩放:最大缩放,
    名称:地图类型名称
    };
    map.mapTypes.set(映射类型名称,新的google.maps.ImageMapType(imageMapTypeOptions));
    map.setMapTypeId(映射类型名称);
    初始化标记();
    google.maps.event.addListener(映射,“zoom_changed”,onZoomChanged);
    mapIdleListener=google.maps.event.addListener(映射,“空闲”,未加载);
    onZoomChanged()
    }
    函数onZoomChanged(){
    功能按钮已激活&关闭信息框();
    var a=map.getZoom();
    用于(第节中的id)
    节[id]。类型!=类型\功能&&(a>=节[id]。zoom.min&&a