UNPKG

vue-tianditu2

Version:
1 lines 3.39 kB
{"version":3,"file":"SearchMapView.mjs","sources":["../../../../../packages/service/search/components/SearchMapView.ts"],"sourcesContent":["import { computed, defineComponent, h, onBeforeMount, type PropType, watch } from \"vue\";\nimport { TdtMarker } from \"~/overlay/marker\";\nimport { TdtInfowindow } from \"~/overlay/infowindow\";\nimport { toLngLats, toLonLatNumberArray } from \"~/utils/converter\";\nimport { useMapRoot } from \"~/use/mapRoot\";\nimport type { LngLat } from \"~/utils/types\";\n\nexport const SearchMapView = defineComponent({\n props: {\n /** 显示在地图上的点数组 */\n pois: { type: Array as PropType<T.LocalSearchPoi[]>, default: () => [] },\n /** 显示信息窗口的坐标 */\n target: { type: Array as unknown as PropType<LngLat | null>, default: () => null },\n /** 信息窗口的内容 */\n content: { type: String, default: \"\" }\n },\n emits: {\n /** 点击地图上的标点触发 */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n \"poi-click\": (e: T.LocalSearchPoi) => true,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n \"update-target\": (e: LngLat | null) => true\n },\n setup(props, { emit }) {\n const markers = computed(() => {\n return props.pois.map(poi => {\n return {\n position: toLonLatNumberArray(poi.lonlat),\n extData: poi\n };\n });\n });\n\n onBeforeMount(async () => {\n const tdtMap = await useMapRoot();\n\n watch(markers, () => {\n tdtMap?.setViewport(toLngLats(markers.value.map(e => e.position)));\n });\n });\n\n return () =>\n h(\"div\", null, [\n ...markers.value.map(item => {\n return h(TdtMarker, {\n ...item,\n onClick: () => emit(\"poi-click\", item.extData)\n });\n }),\n h(TdtInfowindow, {\n target: props.target,\n content: props.content,\n offset: [0, -30],\n minWidth: 150,\n \"onUpdate:target\": (e: LngLat | null) => emit(\"update-target\", e)\n })\n ]);\n }\n});\n"],"names":["SearchMapView","defineComponent","props","emit","markers","computed","poi","toLonLatNumberArray","onBeforeMount","tdtMap","useMapRoot","watch","toLngLats","e","h","item","TdtMarker","TdtInfowindow"],"mappings":";;;;;AAOO,MAAMA,IAAgBC,EAAgB;AAAA,EAC3C,OAAO;AAAA;AAAA,IAEL,MAAM,EAAE,MAAM,OAAuC,SAAS,MAAM,CAAA,EAAG;AAAA;AAAA,IAEvE,QAAQ,EAAE,MAAM,OAA6C,SAAS,MAAM,KAAK;AAAA;AAAA,IAEjF,SAAS,EAAE,MAAM,QAAQ,SAAS,GAAG;AAAA,EACvC;AAAA,EACA,OAAO;AAAA;AAAA;AAAA,IAGL,aAAa,CAAC,MAAwB;AAAA;AAAA,IAEtC,iBAAiB,CAAC,MAAqB;AAAA,EACzC;AAAA,EACA,MAAMC,GAAO,EAAE,MAAAC,KAAQ;AACf,UAAAC,IAAUC,EAAS,MAChBH,EAAM,KAAK,IAAI,CAAOI,OACpB;AAAA,MACL,UAAUC,EAAoBD,EAAI,MAAM;AAAA,MACxC,SAASA;AAAA,IACX,EACD,CACF;AAED,WAAAE,EAAc,YAAY;AAClB,YAAAC,IAAS,MAAMC,EAAW;AAEhC,MAAAC,EAAMP,GAAS,MAAM;AACX,QAAAK,KAAA,QAAAA,EAAA,YAAYG,EAAUR,EAAQ,MAAM,IAAI,CAAKS,MAAAA,EAAE,QAAQ,CAAC;AAAA,MAAC,CAClE;AAAA,IAAA,CACF,GAEM,MACLC,EAAE,OAAO,MAAM;AAAA,MACb,GAAGV,EAAQ,MAAM,IAAI,CAAQW,MACpBD,EAAEE,GAAW;AAAA,QAClB,GAAGD;AAAA,QACH,SAAS,MAAMZ,EAAK,aAAaY,EAAK,OAAO;AAAA,MAAA,CAC9C,CACF;AAAA,MACDD,EAAEG,GAAe;AAAA,QACf,QAAQf,EAAM;AAAA,QACd,SAASA,EAAM;AAAA,QACf,QAAQ,CAAC,GAAG,GAAG;AAAA,QACf,UAAU;AAAA,QACV,mBAAmB,CAACW,MAAqBV,EAAK,iBAAiBU,CAAC;AAAA,MACjE,CAAA;AAAA,IAAA,CACF;AAAA,EAAA;AAEP,CAAC;"}