* @since 5.0.0
*/
public void service(org.zkoss.zk.au.AuRequest request, boolean everError) {
final String cmd = request.getCommand();
if (cmd.equals("onMapMove")) {
final MapMoveEvent evt = MapMoveEvent.getMapMoveEvent(request);
setCenterByClient(evt.getLatLng());
setBoundsByClient(evt.getBounds());
Events.postEvent(evt);
} else if (cmd.equals("onMapZoom")) {
final MapZoomEvent evt = MapZoomEvent.getMapZoomEvent(request);
final int zoom = evt.getZoom();
setZoomByClient(zoom);
Events.postEvent(evt);
} else if (cmd.equals("onInfoChange")) {
final InfoChangeEvent evt = InfoChangeEvent.getInfoChangeEvent(request);
setInfoByClient(evt.getInfo());
Events.postEvent(evt);
} else if (cmd.equals("onMapClick")
|| cmd.equals("onMapDoubleClick")
|| cmd.equals("onMapRightClick")) {
final MapMouseEvent evt = MapMouseEvent.getMapMouseEvent(request);
Events.postEvent(evt);
} else if (cmd.equals(Events.ON_SELECT)) {
SelectEvent evt = SelectEvent.getSelectEvent(request);
Set selItems = evt.getSelectedItems();
final Component mitem = selItems == null || selItems.isEmpty() ?
null : (Component) selItems.iterator().next();
setSelectedItem(mitem);
Events.postEvent(evt);
} else if (cmd.equals("onMapTypeChange")) {
final MapTypeChangeEvent evt = MapTypeChangeEvent.getMapTypeChangeEvent(request);
setMapTypeByClient(evt.getType());
Events.postEvent(evt);
} else if (cmd.equals("onMapDrop")) {
final MapDropEvent evt = MapDropEvent.getMapDropEvent(request);
final Component dragged = evt.getDragged();
if (dragged instanceof Gmarker)
((Gmarker) dragged).setAnchor(evt.getLatLng());
Events.postEvent(evt);
} else
super.service(request, everError);
}