diff --git a/src/modules/map/declare/keda-map.ts b/src/modules/map/declare/keda-map.ts index 9896917..f5c4a59 100644 --- a/src/modules/map/declare/keda-map.ts +++ b/src/modules/map/declare/keda-map.ts @@ -53,8 +53,63 @@ export class KeDaMap extends KedaBasic implements IMap { }) return d; } - setAdministrativeAreaStyle(conponent: any, getData?: Function, setData?: Function) { //自定义 行政区划 样式 - + setAdministrativeAreaStyle(component: any, getData?: Function, setData?: Function) { //自定义 行政区划 样式 + let beforeCode = cityCode //当前 城市行政编码 + let setTime //延时器 + let initMap = ()=>{ //绘制地图 + this.self.getGeometryByAdminCode({ + code: beforeCode, + callback: function (res) { + this.self.highlightPolygon({ + color: 'rgba(255,0,0,0.5)', + area:res.data + }); + } + }); + } //function + let clickMap = (e)=>{ //点击地图 + console.log(e,'点击map') + this.self.getAdminInfoByPoint({ + point: e.position, + callback: (res)=>{ + if (res.status === 10) { + if (res.data.adminId != beforeCode && res.data.parentId === cityCode) { //当前点击位置已改动 + window.clearTimeout(setTime) + beforeCode = res.data.adminId + setTime = window.setTimeout(()=>{ initMap() },100) + let name = { properties:{name: res.data.cityName } } + getData && getData.call(component,name); + return + } else if (res.data.adminId != beforeCode || res.data.parentId != cityCode) { + window.clearTimeout(setTime) + beforeCode = cityCode + setTime = window.setTimeout(()=>{ initMap() },100) + setData && setData.call(component); + } + } else { + if (beforeCode != cityCode) { + window.clearTimeout(setTime) + beforeCode = cityCode + setTime = window.setTimeout(()=>{ initMap() },100) + setData && setData.call(component); + } + } + } + }); + } + this.self.addEventOnMap({ + event: "load", + handler: ()=>{ + initMap() + let level = Number(sessionStorage.getItem("level")) + if (level < 3) { + this.self.addEventOnMap({ + event: "click", + handler: clickMap + }); + } + } + }); } clearMap() { this.self.clear() diff --git a/src/modules/map/declare/map.d.ts b/src/modules/map/declare/map.d.ts index c7c5c2b..9e8899a 100644 --- a/src/modules/map/declare/map.d.ts +++ b/src/modules/map/declare/map.d.ts @@ -26,7 +26,7 @@ export interface IMap extends ISelf { getCenter(): ILngLat; getBounds(): any; distance(a:number[],b:number[]): any; - setAdministrativeAreaStyle(conponent:any,getData?:Function,setData?:Function): any; //自定义 行政区划 样式 + setAdministrativeAreaStyle(component:any,getData?:Function,setData?:Function): any; //自定义 行政区划 样式 } export interface IMapOptions {