KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I need to detect when a MapView has been scrolled or zoomed, like the "moveend" event in the javascript API. I'd like to wait until the view has stopped moving, so I can then detect if I need to query my server for items withing the viewing rectangle, and if so send out a request. (actually I send a request for a slightly larger area than the viewing rectangle) Obviously, I'd rather not send out a request for data if the view is still moving. But even worse is that I don't know that I need to send another request, leaving areas of the map missing markers. Currently I am subclassing MapView and handling the onTouchEvent as follows: public boolean onTouchEvent(android.view.MotionEvent ev) { super.onTouchEvent (ev); if (ev.getAction() == MotionEvent.ACTION_UP) { GeoPoint center = getMapCenter(); int latSpan = getLatitudeSpan(), lngSpan = getLongitudeSpan(); /* (check if it has moved enough to need a new set of data) */ } return true; } Problem is, I don't know if the view has stopped, since scrolling tends to have inertia and can keep going past the "ACTION_UP" event. Is there some event I can tap into that will alert me when a mapview is done moving (or zooming)? If not, has anyone written logic to detect this? In theory I could make a guess by looking at all the actions, and set something to come along bit later and check it...but...that seems messy and a PITA. But if someone has already written it.... :)
Tags (comma-separated)
Save Edits
Cancel