I can't seem to find the map event in Here that equals to Google Map "idle" event.
The definition of Google Map event "idle" is "This event is fired when the map becomes idle after panning or zooming."
So, when any of the map actions are done completely the map becomes idle and the idle event is fired — with this event i can guarantee all map's animations, actions and other stuff are done completely.
For example, if i zoom or pan the map with the animation option enabled zoom_changed and dragend events will be fired immediately but only after the idle event i can safely use getZoom or getBounds or getCenter methods and get correct values instead of some intermediate values (while animation is still running).
In Here maps i can see only pointer, drag and tap events. There is no any zoom change event at all. And all those events cannot guarantee the map is ready to give correct zoom/bounds/center/etc values after some interaction.
For example, Here dragend event is firing but drag animation is still running, so i cannot guarantee getBounds or getCenter will return correct values if i try to read them right in dragend callback.
In Yandex maps i have actionend event which is equivalent to the Google's "idle" event.
What i have in Here maps which is equal to the Google Map or Yandex Map "idle" event?
If you refer to the JavaScript API you may want to look at the mapviewchangeend event
Related
When drag external event I use draggable and option drag. Then I get information every move. Now I need the same for internal event, but are availabe only dragStart and dragStop, which run only one times.
----SOLVED----
I use eventAllow in Fullcalendar
When I add click listener for a polyline object, click on it also causes the map click, which I want to avoid, since map click triggers the expensive network operation. How should I subscribe to polyline clicks to avoid map clicks?
You can call stopPropagation() on the event to prevent it from being passed to the polyline hierarchy. See https://developer.here.com/javascript-apis/documentation/v3/maps/topics_api_nlp/h-mapevents-event.html
My program is working on Qt, and I have a problem and there is free answer for it in website.
Our products need to update image while user move mouse, but the updating image is very time-consuming.If user move the mouse quickly, the system will generate a lot of mouse movement events, eventually leading to clogging of the background process.Therefore, we need to filter out part of the event.
I filter mouse move event by insert event filter in QApplication:
qApp->insertEventFilter(this)
Once I catch mouse event, I will store QMouseEvent and pointer of QObject, and active QTimer. other mouseMouseEvent will can overwrite them before timeout. After timeout, the last event will be post.
I can't use:
QApplication::sendEvent(XX) or postEvent(xx)
because it will be catched by my event filter again.
How can I make it work?
Don't filter the events. Instead of that, change your background worker which is responsible for producing the data to make sure that you do not spend time on stuff you won't need.
I'm using this third party library, called Marker Clusterer with the Google Maps API. http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclustererplus/docs/reference.html
I am trying to trigger an event when the map's zoom level is changed. The odd thing I've noticed though, is that when you click on a marker cluster, it calls the zoom event twice. Has anyone come across this odd error before? Why would it trigger the zoom callback twice? When I zoom normally without using clusters, the zoom callback is only called once.
Any ideas?
Looks like that behavior is a fix for an issue on IOS. You can download your own copy of the code and remove the additional call to fitBounds if you don't need it.
In my web based flex app I have a HSlider to which 'change' event listener is binded. Inside the event listener function I have the following.
trace('slider click target: '+e.clickTarget);
I am changing the slider value from a timer (say every second). At this time, in the console I see that traget is being printed as null every second.
Now, if I change the value by dragging the thumb, it prints target as thumb. And then onwards it keeps printing the target as thumb every second instead of printing null. The same thing happens if change the slider value by clicking track (it keeps printing track).
Basically, I have the event listener to find out if the value of the slider is changing due to the timer, click on thumb or click on track. Kindly let me know if this issue can be fixed or is there any other approach I can follow. Thanks!!
This is strange, because the documentation says that the change event is dispatched when the slider changes value due to mouse or keyboard interaction - the event is not triggered when you change it programmatically, and the listener shouldn't even be called.
Are you calling the event listener manually? Post some more code - where you update the slider value and the full event listener.