UNPKG

vue-tianditu2

Version:
1 lines 4.16 kB
{"version":3,"file":"controls.mjs","sources":["../../../../packages/map/use/controls.ts"],"sourcesContent":["import type { Emit, Props } from \"./\";\nimport { toBounds } from \"~/utils/converter\";\nimport type { ControlName, ControlOptions } from \"~/utils/types\";\n\nexport function useControls(props: Props, map: T.Map, emit: Emit) {\n props.controls?.forEach((option: ControlName | ControlOptions) => {\n if (typeof option === \"string\") {\n addControlByName(option);\n } else if (typeof option === \"object\") {\n addControlByOption(option);\n }\n });\n\n function addControlByName(option: ControlName) {\n const controlName = option;\n if (!T.Control[controlName]) {\n setTimeout(() => addControlByName(option));\n return;\n }\n const control = new T.Control[controlName]();\n if (controlName === \"OverviewMap\") {\n const c = control as T.ControlOverviewMap;\n c.addEventListener(\"viewchange\", e => emit(\"viewchange\", e));\n }\n map.addControl(control);\n }\n\n function addControlByOption(option: ControlOptions) {\n const controlName = option.name;\n if (!T.Control[controlName]) {\n setTimeout(() => addControlByOption(option));\n return;\n }\n switch (controlName) {\n case \"MapType\":\n {\n const mapTypes = option.mapTypes?.map(item => {\n return {\n ...item,\n layer: window[item.layer]\n };\n });\n const control = new T.Control.MapType(mapTypes);\n if (option.position) {\n control.setPosition(option.position);\n }\n map.addControl(control);\n }\n break;\n case \"OverviewMap\":\n {\n const control = new T.Control.OverviewMap(option);\n control.addEventListener(\"viewchange\", e => emit(\"viewchange\", e));\n map.addControl(control);\n }\n break;\n case \"Copyright\":\n {\n // 根据官网的示例,需要先初始化控件,再添加版权信息\n const control = new T.Control.Copyright({ position: option.position || \"bottomleft\" });\n map.addControl(control);\n control.addCopyright({\n ...option,\n bounds: option.bounds?.length ? toBounds(option.bounds) : undefined\n });\n }\n break;\n default:\n {\n const control = new T.Control[controlName](option);\n map.addControl(control);\n }\n break;\n }\n }\n}\n"],"names":["useControls","props","map","emit","_a","option","addControlByName","addControlByOption","controlName","control","mapTypes","item","e","_b","toBounds"],"mappings":";AAIgB,SAAAA,EAAYC,GAAcC,GAAYC,GAAY;;AAC1D,GAAAC,IAAAH,EAAA,aAAA,QAAAG,EAAU,QAAQ,CAACC,MAAyC;AAC5D,IAAA,OAAOA,KAAW,WACpBC,EAAiBD,CAAM,IACd,OAAOA,KAAW,YAC3BE,EAAmBF,CAAM;AAAA,EAC3B;AAGF,WAASC,EAAiBD,GAAqB;AAC7C,UAAMG,IAAcH;AACpB,QAAI,CAAC,EAAE,QAAQG,CAAW,GAAG;AAChB,iBAAA,MAAMF,EAAiBD,CAAM,CAAC;AACzC;AAAA,IAAA;AAEF,UAAMI,IAAU,IAAI,EAAE,QAAQD,CAAW,EAAE;AAC3C,IAAIA,MAAgB,iBACRC,EACR,iBAAiB,cAAc,CAAA,MAAKN,EAAK,cAAc,CAAC,CAAC,GAE7DD,EAAI,WAAWO,CAAO;AAAA,EAAA;AAGxB,WAASF,EAAmBF,GAAwB;;AAClD,UAAMG,IAAcH,EAAO;AAC3B,QAAI,CAAC,EAAE,QAAQG,CAAW,GAAG;AAChB,iBAAA,MAAMD,EAAmBF,CAAM,CAAC;AAC3C;AAAA,IAAA;AAEF,YAAQG,GAAa;AAAA,MACnB,KAAK;AACH;AACE,gBAAME,KAAWN,IAAAC,EAAO,aAAP,gBAAAD,EAAiB,IAAI,CAAQO,OACrC;AAAA,YACL,GAAGA;AAAA,YACH,OAAO,OAAOA,EAAK,KAAK;AAAA,UAC1B,KAEIF,IAAU,IAAI,EAAE,QAAQ,QAAQC,CAAQ;AAC9C,UAAIL,EAAO,YACDI,EAAA,YAAYJ,EAAO,QAAQ,GAErCH,EAAI,WAAWO,CAAO;AAAA,QAAA;AAExB;AAAA,MACF,KAAK;AACH;AACE,gBAAMA,IAAU,IAAI,EAAE,QAAQ,YAAYJ,CAAM;AAChD,UAAAI,EAAQ,iBAAiB,cAAc,CAAAG,MAAKT,EAAK,cAAcS,CAAC,CAAC,GACjEV,EAAI,WAAWO,CAAO;AAAA,QAAA;AAExB;AAAA,MACF,KAAK;AACH;AAEQ,gBAAAA,IAAU,IAAI,EAAE,QAAQ,UAAU,EAAE,UAAUJ,EAAO,YAAY,cAAc;AACrF,UAAAH,EAAI,WAAWO,CAAO,GACtBA,EAAQ,aAAa;AAAA,YACnB,GAAGJ;AAAA,YACH,SAAQQ,IAAAR,EAAO,WAAP,QAAAQ,EAAe,SAASC,EAAST,EAAO,MAAM,IAAI;AAAA,UAAA,CAC3D;AAAA,QAAA;AAEH;AAAA,MACF;AACE;AACE,gBAAMI,IAAU,IAAI,EAAE,QAAQD,CAAW,EAAEH,CAAM;AACjD,UAAAH,EAAI,WAAWO,CAAO;AAAA,QAAA;AAExB;AAAA,IAAA;AAAA,EACJ;AAEJ;"}