From 8ac3a87733b421c1f1cb3b691f946c05bdae02df Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Fri, 06 Jul 2018 13:54:14 +0800
Subject: [PATCH] 设备,监控点维护 完善

---
 src/app/routes/map/coordinates-picker/coordinates-picker.component.ts |   70 +++++++++++++++++++++++++++++------
 1 files changed, 58 insertions(+), 12 deletions(-)

diff --git a/src/app/routes/map/coordinates-picker/coordinates-picker.component.ts b/src/app/routes/map/coordinates-picker/coordinates-picker.component.ts
index 726a069..1a787bd 100644
--- a/src/app/routes/map/coordinates-picker/coordinates-picker.component.ts
+++ b/src/app/routes/map/coordinates-picker/coordinates-picker.component.ts
@@ -16,6 +16,7 @@
 export class CoordinatesPickerComponent implements OnInit {
     Default_LNG = 121;
     Default_LAT = 31.4;
+    showZoom = 19;
     isSaving = false;
     markerOption: {
       point: Point,
@@ -35,19 +36,19 @@
   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
       };  
@@ -98,14 +99,59 @@
           && 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 = {

--
Gitblit v1.8.0