| | |
| | | export class CoordinatesPickerComponent implements OnInit { |
| | | Default_LNG = 121; |
| | | Default_LAT = 31.4; |
| | | showZoom = 19; |
| | | isSaving = false; |
| | | markerOption: { |
| | | point: Point, |
| | |
| | | ngOnInit(): void { |
| | | this.data = this.coorPickerService.data; |
| | | let lng = this.data.longitude; |
| | | lng = lng === 0 || lng == null ? this.Default_LNG : lng; |
| | | lng = !lng ? this.Default_LNG : lng; |
| | | this.data.longitude = lng; |
| | | let lat = this.data.latitude; |
| | | lat = lat === 0 || lat == null ? this.Default_LAT : lat; |
| | | lat = !lat ? this.Default_LAT : lat; |
| | | this.data.latitude = lat; |
| | | this.options = { |
| | | minZoom: 3, |
| | | maxZoom: 19, |
| | | cursor: 'default', |
| | | centerAndZoom: { |
| | | lng: lng, |
| | | lat: lat, |
| | | zoom: 19 |
| | | centerAndZoom: { |
| | | lng: this.data.longitude, |
| | | lat: this.data.latitude, |
| | | zoom: this.showZoom |
| | | }, |
| | | enableKeyboard: true |
| | | }; |
| | |
| | | && this.data.longitude === this.Default_LNG |
| | | && !!this.data.address |
| | | && !!this.data.address.trim()) { |
| | | this._localSearch.search(this.data.address); |
| | | this.mapSearch(this.data.address); |
| | | } |
| | | } |
| | | queryTest: string; |
| | | mapSearch(param: any) { |
| | | let text = this.queryTest; |
| | | text = text == null || text.trim() === '' ? '昆山市' : text; |
| | | this._localSearch.search(text); |
| | | city: string; |
| | | // queryText: string; |
| | | mapSearch(queryText: string, isSearch?: boolean) { |
| | | |
| | | if (!!queryText && !!queryText.trim()) { |
| | | this.city = !!this.city ? this.city : '北京市'; |
| | | const end = queryText.indexOf('市') + 1; |
| | | if (end > 0) { |
| | | let start = queryText.indexOf('省') + 1; |
| | | start = start > 0 ? start : queryText.indexOf('区') + 1; |
| | | start = start > end ? 0 : start; |
| | | if (start < end) { |
| | | this.city = queryText.slice(start, end).trim(); |
| | | if (!!this.city) { |
| | | this._map.setCurrentCity(this.city); |
| | | } |
| | | } |
| | | } |
| | | console.log(this.city); |
| | | const myGeo = new this._BMap.Geocoder(); |
| | | const that = this; |
| | | that._map.setCurrentCity(that.city); |
| | | myGeo.getPoint(queryText, function(point){ |
| | | let getPoint = false; |
| | | if (point) { |
| | | that.data.latitude = point.lat; |
| | | that.data.longitude = point.lng; |
| | | getPoint = true; |
| | | }else { |
| | | console.log('您选择地址没有解析到结果!'); |
| | | } |
| | | that.markerOption.point = { |
| | | lng: that.data.longitude, |
| | | lat: that.data.latitude |
| | | }; |
| | | that.options.centerAndZoom = { |
| | | lng: that.data.longitude, |
| | | lat: that.data.latitude, |
| | | zoom: that.showZoom |
| | | }; |
| | | // setTimeout(() => { |
| | | if (getPoint && !isSearch) { |
| | | that._map.centerAndZoom(point, that.showZoom); |
| | | |
| | | } else { |
| | | that._localSearch.search(queryText); |
| | | } |
| | | // }, 3000); |
| | | }, that.city); |
| | | } |
| | | } |
| | | clickMap(e: any) { |
| | | this.markerOption.point = { |