google.maps.event.addListenerOnce(map, "maptypeid_changed", function()
{
        var currentMapTypeId = map.getMapTypeId();
        var mapTypeReg = map.mapTypes;
        var mapTypeId, mapType;
        for(var i in google.maps.MapTypeId){
                mapTypeId = google.maps.MapTypeId[i];
                if (mapTypeId.substr(0, 1) != "_") {
                        mapType = mapTypeReg.get(mapTypeId);
                        if (typeof(params.minZoom) == "number") {
                                mapType.minZoom = params.minZoom;
                        }
                        if (typeof(params.maxZoom) == "number") {
                                mapType.maxZoom = params.maxZoom;
                        }
                }
        }
});


On 9月24日, 午前12:35, Francisco Ramos <[email protected]> wrote:
> The only problem with that way is the length of the slider, it doesn't
> change, keeping the same length from 0 to 20, and you are checking the
> zoom level in every zoom_changed
>
> Have a look at this snippets and give it a try:
>
> minZoom = 5;
> maxZoom = 15;
>
> map = new google.maps.Map(...);
>
> google.maps.event.addListener(map, "maptypeid_changed", function () {
>
>     map.mapTypes[map.getMapTypeId()].minZoom = minZoom;
>     map.mapTypes[map.getMapTypeId()].maxZoom = maxZoom;
>
>     google.maps.event.trigger(map, "zoom_changed");
>
> });
>
> /
> *************************************************************************** 
> **************/
>
> function setMinZoom (zoom) {
>     map.mapTypes[map.getMapTypeId()].minZoom = zoom;
>     google.maps.event.trigger(map, "zoom_changed");
>
> }
>
> function setMaxZoom (zoom) {
>     map.mapTypes[this._map.getMapTypeId()].maxZoom = zoom;
>     google.maps.event.trigger(map, "zoom_changed");
>
> }
>
> On Sep 23, 3:28 pm, korky <[email protected]> wrote:
>
>
>
> > Finally managed to do it. For those who're interested :
>
> > maxZoom = 19;
> > minZoom = 13;
> >         google.maps.event.addListener(map, 'zoom_changed', function(){
> >            if(map.getZoom() < maxZoom){
> >                         map.setZoom(maxZoom);
> >                 }else if(map.getZoom() > minZoom){
> >                         map.setZoom(minZoom);
> >                 }
> >         });
>
> > On 23 sep, 14:46, korky <[email protected]> wrote:
>
> > > Hi, I'm new at coding with the API V3 and I'm actually trying to set
> > > maxZoom and minZoom values on my map, but can't find any way to do it.
> > > The point of this would be to restrict the user to a max and a min
> > > zoom on the map, thus if he reaches the value of maxZoom he can't
> > > scroll further and the same for minZoom.
>
> > > It must be kind of by using MapType ? But where do I declare all this
> > > stuff?
>
> > > Thanks.
>
> > > By the way, this is a part of my actual code, I guess I would've to
> > > declare the max and min Zoom nearby?
>
> > > function initialize()
> > > {
> > >         geocoder = new google.maps.Geocoder();
>
> > >         var mapCenter = new google.maps.LatLng(arrMapOptions[0].lat,
> > > arrMapOptions[0].lng);
> > >         var mapOptions = {
> > >                 zoom: arrMapOptions[0].zoom,
> > >                 center: mapCenter,
> > >                 mapTypeId: google.maps.MapTypeId.ROADMAP
> > >                 };
>
> > >         map = new google.maps.Map(document.getElementById('mapcanvas'),
> > > mapOptions);
>
> > > }

-- 
You received this message because you are subscribed to the Google Groups 
"Google Maps JavaScript API v3" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-maps-js-api-v3?hl=en.

Reply via email to