Hi Luc -

You can use something like the code shown below - basically, it
restricts the user from panning too far by listening to the MOVE_STEP
event and panning back if they go too far.

- pamela


       // Define bounds somewhere application
       private var mapBounds:LatLngBounds;

       // Add listener after map is created
       map.addEventListener(MapMoveEvent.MOVE_STEP, onMoveStepEvent);

       /**
        * Restrict padding on movement such that the center
        * of the map stays within bounds.
        *
        * @param event move event information.
        * @author Scott Selikoff
        */
       private function onMoveStepEventHandler(event:Event):void {

               if(!mapBounds.containsLatLng(map.getCenter())) {
                       // Initialize new point
                       var newLatitude:Number = map.getCenter().lat();
                       var newLongitude:Number = map.getCenter().lng();

                       // Initial min/max
                       var minLatitude:Number = mapBounds.getSouthEast().lat();
                       var maxLatitude:Number = mapBounds.getNorthEast().lat();
                       var minLongitude:Number = mapBounds.getNorthWest().lng();
                       var maxLongitude:Number = mapBounds.getNorthEast().lng();

                       // Adjust Latitude as needed
                       if(newLatitude < minLatitude) {
                               newLatitude = minLatitude;
                       } else if(newLatitude > maxLatitude) {
                               newLatitude = maxLatitude;
                       }

                       // Adjust Longitude as needed
                       if(minLongitude < maxLongitude) {
                               // Normal Case
                               if(newLongitude < minLongitude) {
                                       newLongitude = minLongitude;
                               } else if(newLongitude > maxLongitude) {
                                       newLongitude = maxLongitude;
                               }
                       } else {
                               // Case where bounds is on
International date line since West > East
                               if(newLongitude < minLongitude &&
newLongitude > maxLongitude) {
                                       // Bound detected, choose
nearest neighbor

if(Math.abs(newLongitude-minLongitude) <
Math.abs(newLongitude-maxLongitude)) {
                                               newLongitude = minLongitude;
                                       } else {
                                               newLongitude = maxLongitude;
                                       }
                               }
                       }
                       map.setCenter(new LatLng(newLatitude,newLongitude));
               }
       }


On Sat, May 30, 2009 at 12:57 PM, Luc Barthelet <[email protected]> wrote:
>
> Asking again. Did I miss some answer somehow?
> I am trying to constrain the dragging of the map to a rectangle, but I have 
> not figured out anyway to do that.
>
> Thank you,
> Luc
>
>
> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of Luc Barthelet
> Sent: Sunday, May 24, 2009 5:06 PM
> To: [email protected]
> Subject: Limiting the drag boundaries of the map
>
>
> I have a custom map, and it would be nice to be able to control to which 
> extend the user can drag the map around.
> I would like to prevent the 'around the world' wrapping of the map, as my map 
> is currently only a small portion of a future larger map.
>
> Is there a way to do that already? or would that be a new feature?
>
> Thank you,
> Luc
>
>
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Maps API For Flash" 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-api-for-flash?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to