From 309d1f9d649daa08bb9b068af014749f6d4a5bce Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Fri, 06 Jul 2018 14:00:45 +0800
Subject: [PATCH] 设备和监控点父页面 筛选条件不予 编辑页面联动
---
src/app/routes/map/coordinates-picker/coordinates-picker.component.ts | 138 +++++++++++++++++++++++++++++++--------------
1 files changed, 94 insertions(+), 44 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 a06e490..1a787bd 100644
--- a/src/app/routes/map/coordinates-picker/coordinates-picker.component.ts
+++ b/src/app/routes/map/coordinates-picker/coordinates-picker.component.ts
@@ -1,7 +1,7 @@
import { NzModalSubject } from 'ng-zorro-antd';
import { ReactiveFormsModule } from '@angular/forms';
-import { ViewEncapsulation,Component, ViewChild, ElementRef, NgZone } from '@angular/core';
-import { MapOptions,Point,MarkerOptions,ControlAnchor,NavigationControlOptions,NavigationControlType,BMapInstance } from 'angular2-baidu-map';
+import { ViewEncapsulation, Component, ViewChild, ElementRef, NgZone, OnInit } from '@angular/core';
+import { MapOptions, Point, MarkerOptions, ControlAnchor, NavigationControlOptions, NavigationControlType, BMapInstance } from 'angular2-baidu-map';
import { CoorPicker } from '@business/entity/data';
import { CoorPickerService } from 'app/routes/map/coordinates-picker/coordinates-picker.service';
@@ -13,48 +13,52 @@
templateUrl: './coordinates-picker.component.html',
styleUrls: [ './coordinates-picker.component.css' ],
})
-export class CoordinatesPickerComponent{
+export class CoordinatesPickerComponent implements OnInit {
Default_LNG = 121;
Default_LAT = 31.4;
+ showZoom = 19;
isSaving = false;
- markerOption:{
- point:Point,
- options:MarkerOptions
- }= {
- point:null,
- options:null
+ markerOption: {
+ point: Point,
+ options: MarkerOptions
+ } = {
+ point: null,
+ options: null
};
- data:CoorPicker;
- navigationOpts:NavigationControlOptions;
+ data: CoorPicker;
+ navigationOpts: NavigationControlOptions;
options: MapOptions;
- _BMap:any = null;
+ _BMap: any = null;
- constructor(private subject:NzModalSubject,private coorPickerService:CoorPickerService) {
+ constructor(private subject: NzModalSubject, private coorPickerService: CoorPickerService) {
+
+ }
+ 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
+ minZoom: 3,
+ maxZoom: 19,
+ cursor: 'default',
+ centerAndZoom: {
+ lng: this.data.longitude,
+ lat: this.data.latitude,
+ zoom: this.showZoom
},
enableKeyboard: true
};
this.navigationOpts = {
anchor: ControlAnchor.BMAP_ANCHOR_BOTTOM_RIGHT,
type: NavigationControlType.BMAP_NAVIGATION_CONTROL_LARGE
- }
+ };
this.markerOption.point = {
- lng:lng,
- lat:lat
+ lng: lng,
+ lat: lat
};
this.markerOption.options = {
icon: {
@@ -64,15 +68,15 @@
width: 30
}
},
- offset:{
- height:-30,
- width:-15
+ offset: {
+ height: -30,
+ width: -15
}
};
- }
- private _marker:any = null;
- loadMarker(marker){
- if(this._marker==null){
+ }
+ private _marker: any = null;
+ loadMarker(marker) {
+ if (this._marker == null) {
this._marker = marker;
}
}
@@ -84,24 +88,70 @@
this._map.addEventListener(
'tilesloaded',
(type, fn) => {
- this._map.clearOverlays();
+ // this._map.clearOverlays();
this._map.addOverlay(this._marker);
}
);
- this._localSearch= new this._BMap.LocalSearch(map, {
- renderOptions:{map: map}
+ this._localSearch = new this._BMap.LocalSearch(map, {
+ renderOptions: {map: map}
});
- if(this.data.latitude==this.Default_LAT&&this.data.longitude==this.Default_LNG
- &&this.data.address!=null){
- this._localSearch.search(this.data.address);
+ if (this.data.latitude === this.Default_LAT
+ && this.data.longitude === this.Default_LNG
+ && !!this.data.address
+ && !!this.data.address.trim()) {
+ 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