Tomas
Tomas

Reputation: 59565

Display "no map data for this scale" instead of changing zoom when switching map type

In google maps API v3, I'm creating my own custom map types by calling

map.mapTypes.set('my map', new google.maps.ImageMapType({
    getTileUrl: ...
    minZoom: 12,
    maxZoom: 20,
    ...
}));

The layers have of course limited zoom range (12-20 in this example). Now the problem is the default behaviour of google maps. When I see map in scale 7 for example and switch to my map, the map automatically zooms in to zoom 12.

Instead, when I am in zoom 7 and switch to my map, I would like to see tiles with text "No map data in this scale, please zoom in".

Thanks in advance.

Upvotes: 1

Views: 201

Answers (1)

Engineer
Engineer

Reputation: 48813

Avoid minZoom and maxZoom options and try something like this:

map.mapTypes.set('my map', new google.maps.ImageMapType({
    getTileUrl: function( position, zoom ){
        if( zoom >= 12 && zoom <= 20 ){
            return "http://example.com/tileservice?x="+position.x+"&y="+position.y+"&zoom="+zoom;
        }else{
            return "http://example.com/no_map_data_in_this_scale_please_zoom_in.png";
        }
    },
    ...
}));

Upvotes: 5

Related Questions