Geocoder 是一个非常简单的控件,但也是非常常用且实用的控件,顾名思义,Geocoder 就是地理编码的意思,而平常我们经常会查询一些地物,也就是常用的 POI 搜索,就是 Geocoder 的功劳。
初始化时候启用 geocoder
"geocoder": true
重写 geocoder 中 searchCommand
let geocoder = viewer.geocoder.viewModel;
geocoder._searchCommand = Cesium.createCommand(() => {
if (geocoder.isSearchInProgress) {
// 查询进行中,取消执行查询
vm.cancelGeoCode(geocoder);
} else {
// 执行查询
vm.geocode(geocoder);
console.log('geocoder', geocoder);
}
});
取消执行查询 cancelGeocode
cancelGeocode(viewModel) {
viewModel._isSearchInProgress = false;
if (Cesium.defined(viewModel._geocodeInProgress)) {
viewModel._geocodeInProgress.cancel = true;
viewModel._geocodeInProgress = undefined;
}
this.remove(viewModel);
},