我正在使用GWT Maps Api V3开发应用程序。我尝试创建地方搜索框,例如Google Maps JavaScript API(链接Place search box - Google Maps JavaScript API )
的示例我查看了javascript代码,他们使用google.maps.places.SearchBox
创建了SeachBox但是在GWT Maps Api V3(版本3.8.1,GWT-Maps-V3-Api)中,没有类名SearchBox。我想我可以使用autocomplete
和html输入字段创建一个SearchBox。但我无法将我的输入字段放在我的地图中。所以,我的问题是:使用GWT Maps V3 Api创建SearchBox的正确方法是什么?
感谢您的帮助。
答案 0 :(得分:0)
我通过使用方法解决了我的问题(在branflake2267 / GWT-Maps-V3-Api版本3.8.1上)
void com.google.gwt.maps.client.MapWidget.setControls(ControlPosition controlPosition,Widget widget)
首先,我创建一个文本框
private TextBox placeSearchTextField = new TextBox();
并使用setControls:
mapWidget.setControls(ControlPosition.TOP_LEFT, placeSearchTextField );
添加自动填充
private void drawAutoComplete() {
Element element = placeSearchTextField.getElement();
AutocompleteType[] types = new AutocompleteType[2];
types[0] = AutocompleteType.ESTABLISHMENT;
types[1] = AutocompleteType.GEOCODE;
AutocompleteOptions options = AutocompleteOptions.newInstance();
options.setTypes(types);
final Autocomplete autoComplete = Autocomplete.newInstance(element, options);
autoComplete.addPlaceChangeHandler(new PlaceChangeMapHandler() {
public void onEvent(PlaceChangeMapEvent event) {
PlaceResult result = autoComplete.getPlace();
PlaceGeometry geomtry = result.getGeometry();
LatLng center = geomtry.getLocation();
GWT.log("place changed center=" + center);
}
});
mapWidget.getMap().addBoundsChangeHandler(new BoundsChangeMapHandler() {
public void onEvent(BoundsChangeMapEvent event) {
LatLngBounds bounds = mapWidget.getMap().getBounds();
autoComplete.setBounds(bounds);
}
});
}
有一些CSS,我得到了结果