map.addMapMoveEndListener(new MapMoveEndListener() {
@Override
public void onMapMoveEnd(MapMoveEndEvent eventObject) {
Bounds extent = map.getExtent();
extent.transform(DEFAULT_PROJECTION, new Projection("EPSG:900913"));
// set up autocomplete search box for this place
AutocompleteType[] types = new AutocompleteType[2];
types[0] = AutocompleteType.ESTABLISHMENT;
types[1] = AutocompleteType.GEOCODE;
AutocompleteOptions options = AutocompleteOptions.newInstance();
options.setTypes(types);
LatLng sw = LatLng.newInstance(extent.getLowerLeftX(), extent.getLowerLeftY());
LatLng ne = LatLng.newInstance(extent.getUpperRightX(), extent.getUpperRightY());
options.setBounds(LatLngBounds.newInstance(sw, ne));
final Autocomplete autoComplete = Autocomplete.newInstance(locationSearchBox.getElement(), options);
autoComplete.addPlaceChangeHandler(new PlaceChangeMapHandler() {