Hi Pamela,

Thanks for the response. I've starred the feature request you pointed
to. Unfortunately the grey box won't work for my use-case but thanks
for the suggestion,

Kelvin :)

On Jul 21, 3:26 am, "pamela (Google Employee)" <[email protected]>
wrote:
> Hi Kelvin-
> Right now, any technique will have some amount of jumpiness when the user
> nears the restricted area. You can star this feature request for letting
> developers specify a pan 
> bounds:http://code.google.com/p/gmaps-api-issues/issues/detail?id=750
>
> You could also overlay a grey box or area around your target area, which
> could produce a similar effect (depending on your use case).
>
> - pamela
>
> On Thu, Jul 16, 2009 at 8:02 PM, Kelvin Luck <[email protected]> wrote:
>
> > Hi,
>
> > I am trying to do something very similar to this to stop the user from
> > being able to drag into the "empty space" above or below the map. My
> > MOVE_STEP listener currently looks like this:
>
> > var topCornerLatLng:LatLng = map.fromViewportToLatLng(new Point(0,0));
> > if (topCornerLatLng.lat() > 85) {
> >        var latDiff:Number = topCornerLatLng.lat() - 85;
> >        var newCenter:LatLng = new LatLng(event.latLng.lat() - latDiff,
> > event.latLng.lng());
> >        map.setCenter(newCenter);
> > }
>
> > It kind of works but the map gets very jerky as you drag to the top of
> > the map. Is there a better solution?
>
> > I thought that maybe calling event.preventDefault(); or
> > event.stopPropagation(); would prevent google from trying to update
> > the maps position (and therefore allow my setCenter code to work
> > correctly) but that didn't seem to make any difference...
>
> > Is there any way to achieve what I am trying to do?
>
> > Thanks in advance,
>
> > Kelvin :)
>
> > On May 31, 8:07 pm, pamela fox <[email protected]> wrote:
> > > 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