@tarojs/components 4.0.0-canary.9 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +8 -8
- package/README.md +1 -1
- package/dist/cjs/{index-dbbe9dde.js → index-09efe07d.js} +208 -5
- package/dist/cjs/{index-dfd8638f.js → index-8a70c333.js} +6 -0
- package/dist/cjs/{index-f6805218.js → index-b873e40f.js} +45 -27
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/taro-ad-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-ad-custom-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-animation-video-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-animation-view-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-ar-camera-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-audio-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-aweme-data-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-block-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-button-core.cjs.entry.js +2 -2
- package/dist/cjs/taro-camera-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-canvas-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-channel-live-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-channel-video-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-checkbox-core_2.cjs.entry.js +1 -1
- package/dist/cjs/taro-comment-detail-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-comment-list-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-components.cjs.js +2 -2
- package/dist/cjs/taro-contact-button-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-cover-image-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-cover-view-core.cjs.entry.js +2 -2
- package/dist/cjs/taro-custom-wrapper-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-draggable-sheet-core.cjs.entry.js +21 -0
- package/dist/cjs/taro-editor-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-follow-swan-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-form-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-functional-page-navigator-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-grid-builder-core.cjs.entry.js +21 -0
- package/dist/cjs/taro-grid-view-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-icon-core.cjs.entry.js +2 -2
- package/dist/cjs/taro-image-core.cjs.entry.js +2 -2
- package/dist/cjs/taro-inline-payment-panel-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-input-core.cjs.entry.js +2 -2
- package/dist/cjs/taro-keyboard-accessory-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-label-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-lifestyle-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-like-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-list-builder-core.cjs.entry.js +21 -0
- package/dist/cjs/taro-list-view-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-live-player-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-live-pusher-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-login-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-lottie-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-map-core.cjs.entry.js +1325 -6
- package/dist/cjs/taro-match-media-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-movable-area-core_2.cjs.entry.js +6 -3
- package/dist/cjs/taro-native-slot-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-navigation-bar-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-navigator-core.cjs.entry.js +2 -2
- package/dist/cjs/taro-nested-scroll-body-core.cjs.entry.js +21 -0
- package/dist/cjs/taro-nested-scroll-header-core.cjs.entry.js +21 -0
- package/dist/cjs/taro-official-account-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-open-container-core.cjs.entry.js +21 -0
- package/dist/cjs/taro-open-data-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-page-container-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-page-meta-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-picker-core_2.cjs.entry.js +2 -2
- package/dist/cjs/taro-picker-view-column-core_2.cjs.entry.js +3 -3
- package/dist/cjs/taro-progress-core.cjs.entry.js +2 -2
- package/dist/cjs/taro-pull-to-refresh-core.cjs.entry.js +5 -2
- package/dist/cjs/taro-radio-core_2.cjs.entry.js +1 -1
- package/dist/cjs/taro-rich-text-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-root-portal-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-rtc-room-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-rtc-room-item-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-scroll-view-core.cjs.entry.js +3 -3
- package/dist/cjs/taro-share-element-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-slider-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-slot-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-snapshot-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-span-core.cjs.entry.js +21 -0
- package/dist/cjs/taro-sticky-header-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-sticky-section-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-swiper-core_2.cjs.entry.js +42 -8
- package/dist/cjs/taro-switch-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-tab-item-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-tabbar.cjs.entry.js +4 -4
- package/dist/cjs/taro-tabs-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-text-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-textarea-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-video-control_3.cjs.entry.js +15 -6
- package/dist/cjs/taro-view-core.cjs.entry.js +3 -3
- package/dist/cjs/taro-voip-room-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-web-view-core.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +7 -0
- package/dist/collection/components/draggable-sheet/draggable-sheet.js +11 -0
- package/dist/collection/components/grid-builder/grid-builder.js +11 -0
- package/dist/collection/components/input/style/index.css +1 -1
- package/dist/collection/components/list-builder/list-builder.js +11 -0
- package/dist/collection/components/map/map.js +1806 -4
- package/dist/collection/components/map/style/map.css +1 -0
- package/dist/collection/components/movable-area/movable-area.js +2 -1
- package/dist/collection/components/movable-area/movable-view.js +3 -1
- package/dist/collection/components/nested-scroll-body/nested-scroll-body.js +11 -0
- package/dist/collection/components/nested-scroll-header/nested-scroll-header.js +11 -0
- package/dist/collection/components/open-container/open-container.js +11 -0
- package/dist/collection/components/progress/style/index.css +1 -1
- package/dist/collection/components/pull-to-refresh/pull-to-refresh.js +3 -0
- package/dist/collection/components/span/span.js +11 -0
- package/dist/collection/components/swiper/swiper.js +59 -5
- package/dist/collection/components/tabbar/style/index.css +1 -1
- package/dist/collection/components/video/video.js +8 -3
- package/dist/collection/components/view/style/index.css +1 -1
- package/dist/collection/utils/index.js +10 -0
- package/dist/components/index.d.ts +7 -0
- package/dist/components/index.js +7 -0
- package/dist/components/index2.js +45 -27
- package/dist/components/index3.js +6 -1
- package/dist/components/taro-draggable-sheet-core.d.ts +11 -0
- package/dist/components/taro-draggable-sheet-core.js +33 -0
- package/dist/components/taro-grid-builder-core.d.ts +11 -0
- package/dist/components/taro-grid-builder-core.js +33 -0
- package/dist/components/taro-input-core.js +1 -1
- package/dist/components/taro-list-builder-core.d.ts +11 -0
- package/dist/components/taro-list-builder-core.js +33 -0
- package/dist/components/taro-map-core.js +1349 -6
- package/dist/components/taro-movable-area-core.js +2 -1
- package/dist/components/taro-movable-view-core.js +3 -1
- package/dist/components/taro-nested-scroll-body-core.d.ts +11 -0
- package/dist/components/taro-nested-scroll-body-core.js +33 -0
- package/dist/components/taro-nested-scroll-header-core.d.ts +11 -0
- package/dist/components/taro-nested-scroll-header-core.js +33 -0
- package/dist/components/taro-open-container-core.d.ts +11 -0
- package/dist/components/taro-open-container-core.js +33 -0
- package/dist/components/taro-progress-core.js +1 -1
- package/dist/components/taro-pull-to-refresh-core.js +3 -0
- package/dist/components/taro-span-core.d.ts +11 -0
- package/dist/components/taro-span-core.js +33 -0
- package/dist/components/taro-swiper-core.js +40 -5
- package/dist/components/taro-tabbar.js +2 -2
- package/dist/components/taro-video-core.js +8 -3
- package/dist/components/taro-view-core.js +1 -1
- package/dist/esm/{index-486e187e.js → index-9924aee9.js} +209 -5
- package/dist/esm/{index-d1b03e47.js → index-a00a7418.js} +6 -1
- package/dist/esm/{index-c3e4004b.js → index-b9522531.js} +45 -27
- package/dist/esm/loader.js +3 -3
- package/dist/esm/taro-ad-core.entry.js +1 -1
- package/dist/esm/taro-ad-custom-core.entry.js +1 -1
- package/dist/esm/taro-animation-video-core.entry.js +1 -1
- package/dist/esm/taro-animation-view-core.entry.js +1 -1
- package/dist/esm/taro-ar-camera-core.entry.js +1 -1
- package/dist/esm/taro-audio-core.entry.js +1 -1
- package/dist/esm/taro-aweme-data-core.entry.js +1 -1
- package/dist/esm/taro-block-core.entry.js +1 -1
- package/dist/esm/taro-button-core.entry.js +2 -2
- package/dist/esm/taro-camera-core.entry.js +1 -1
- package/dist/esm/taro-canvas-core.entry.js +1 -1
- package/dist/esm/taro-channel-live-core.entry.js +1 -1
- package/dist/esm/taro-channel-video-core.entry.js +1 -1
- package/dist/esm/taro-checkbox-core_2.entry.js +1 -1
- package/dist/esm/taro-comment-detail-core.entry.js +1 -1
- package/dist/esm/taro-comment-list-core.entry.js +1 -1
- package/dist/esm/taro-components.js +3 -3
- package/dist/esm/taro-contact-button-core.entry.js +1 -1
- package/dist/esm/taro-cover-image-core.entry.js +1 -1
- package/dist/esm/taro-cover-view-core.entry.js +2 -2
- package/dist/esm/taro-custom-wrapper-core.entry.js +1 -1
- package/dist/esm/taro-draggable-sheet-core.entry.js +17 -0
- package/dist/esm/taro-editor-core.entry.js +1 -1
- package/dist/esm/taro-follow-swan-core.entry.js +1 -1
- package/dist/esm/taro-form-core.entry.js +1 -1
- package/dist/esm/taro-functional-page-navigator-core.entry.js +1 -1
- package/dist/esm/taro-grid-builder-core.entry.js +17 -0
- package/dist/esm/taro-grid-view-core.entry.js +1 -1
- package/dist/esm/taro-icon-core.entry.js +2 -2
- package/dist/esm/taro-image-core.entry.js +2 -2
- package/dist/esm/taro-inline-payment-panel-core.entry.js +1 -1
- package/dist/esm/taro-input-core.entry.js +2 -2
- package/dist/esm/taro-keyboard-accessory-core.entry.js +1 -1
- package/dist/esm/taro-label-core.entry.js +1 -1
- package/dist/esm/taro-lifestyle-core.entry.js +1 -1
- package/dist/esm/taro-like-core.entry.js +1 -1
- package/dist/esm/taro-list-builder-core.entry.js +17 -0
- package/dist/esm/taro-list-view-core.entry.js +1 -1
- package/dist/esm/taro-live-player-core.entry.js +1 -1
- package/dist/esm/taro-live-pusher-core.entry.js +1 -1
- package/dist/esm/taro-login-core.entry.js +1 -1
- package/dist/esm/taro-lottie-core.entry.js +1 -1
- package/dist/esm/taro-map-core.entry.js +1321 -6
- package/dist/esm/taro-match-media-core.entry.js +1 -1
- package/dist/esm/taro-movable-area-core_2.entry.js +6 -3
- package/dist/esm/taro-native-slot-core.entry.js +1 -1
- package/dist/esm/taro-navigation-bar-core.entry.js +1 -1
- package/dist/esm/taro-navigator-core.entry.js +2 -2
- package/dist/esm/taro-nested-scroll-body-core.entry.js +17 -0
- package/dist/esm/taro-nested-scroll-header-core.entry.js +17 -0
- package/dist/esm/taro-official-account-core.entry.js +1 -1
- package/dist/esm/taro-open-container-core.entry.js +17 -0
- package/dist/esm/taro-open-data-core.entry.js +1 -1
- package/dist/esm/taro-page-container-core.entry.js +1 -1
- package/dist/esm/taro-page-meta-core.entry.js +1 -1
- package/dist/esm/taro-picker-core_2.entry.js +2 -2
- package/dist/esm/taro-picker-view-column-core_2.entry.js +3 -3
- package/dist/esm/taro-progress-core.entry.js +2 -2
- package/dist/esm/taro-pull-to-refresh-core.entry.js +5 -2
- package/dist/esm/taro-radio-core_2.entry.js +1 -1
- package/dist/esm/taro-rich-text-core.entry.js +1 -1
- package/dist/esm/taro-root-portal-core.entry.js +1 -1
- package/dist/esm/taro-rtc-room-core.entry.js +1 -1
- package/dist/esm/taro-rtc-room-item-core.entry.js +1 -1
- package/dist/esm/taro-scroll-view-core.entry.js +3 -3
- package/dist/esm/taro-share-element-core.entry.js +1 -1
- package/dist/esm/taro-slider-core.entry.js +1 -1
- package/dist/esm/taro-slot-core.entry.js +1 -1
- package/dist/esm/taro-snapshot-core.entry.js +1 -1
- package/dist/esm/taro-span-core.entry.js +17 -0
- package/dist/esm/taro-sticky-header-core.entry.js +1 -1
- package/dist/esm/taro-sticky-section-core.entry.js +1 -1
- package/dist/esm/taro-swiper-core_2.entry.js +42 -8
- package/dist/esm/taro-switch-core.entry.js +1 -1
- package/dist/esm/taro-tab-item-core.entry.js +1 -1
- package/dist/esm/taro-tabbar.entry.js +4 -4
- package/dist/esm/taro-tabs-core.entry.js +1 -1
- package/dist/esm/taro-text-core.entry.js +1 -1
- package/dist/esm/taro-textarea-core.entry.js +1 -1
- package/dist/esm/taro-video-control_3.entry.js +11 -6
- package/dist/esm/taro-view-core.entry.js +3 -3
- package/dist/esm/taro-voip-room-core.entry.js +1 -1
- package/dist/esm/taro-web-view-core.entry.js +1 -1
- package/dist/esm-es5/index-9924aee9.js +2 -0
- package/dist/esm-es5/index-a00a7418.js +1 -0
- package/dist/esm-es5/index-b9522531.js +7 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/taro-ad-core.entry.js +1 -1
- package/dist/esm-es5/taro-ad-custom-core.entry.js +1 -1
- package/dist/esm-es5/taro-animation-video-core.entry.js +1 -1
- package/dist/esm-es5/taro-animation-view-core.entry.js +1 -1
- package/dist/esm-es5/taro-ar-camera-core.entry.js +1 -1
- package/dist/esm-es5/taro-audio-core.entry.js +1 -1
- package/dist/esm-es5/taro-aweme-data-core.entry.js +1 -1
- package/dist/esm-es5/taro-block-core.entry.js +1 -1
- package/dist/esm-es5/taro-button-core.entry.js +1 -1
- package/dist/esm-es5/taro-camera-core.entry.js +1 -1
- package/dist/esm-es5/taro-canvas-core.entry.js +1 -1
- package/dist/esm-es5/taro-channel-live-core.entry.js +1 -1
- package/dist/esm-es5/taro-channel-video-core.entry.js +1 -1
- package/dist/esm-es5/taro-checkbox-core_2.entry.js +1 -1
- package/dist/esm-es5/taro-comment-detail-core.entry.js +1 -1
- package/dist/esm-es5/taro-comment-list-core.entry.js +1 -1
- package/dist/esm-es5/taro-components.js +1 -1
- package/dist/esm-es5/taro-contact-button-core.entry.js +1 -1
- package/dist/esm-es5/taro-cover-image-core.entry.js +1 -1
- package/dist/esm-es5/taro-cover-view-core.entry.js +1 -1
- package/dist/esm-es5/taro-custom-wrapper-core.entry.js +1 -1
- package/dist/esm-es5/taro-draggable-sheet-core.entry.js +1 -0
- package/dist/esm-es5/taro-editor-core.entry.js +1 -1
- package/dist/esm-es5/taro-follow-swan-core.entry.js +1 -1
- package/dist/esm-es5/taro-form-core.entry.js +1 -1
- package/dist/esm-es5/taro-functional-page-navigator-core.entry.js +1 -1
- package/dist/esm-es5/taro-grid-builder-core.entry.js +1 -0
- package/dist/esm-es5/taro-grid-view-core.entry.js +1 -1
- package/dist/esm-es5/taro-icon-core.entry.js +1 -1
- package/dist/esm-es5/taro-image-core.entry.js +1 -1
- package/dist/esm-es5/taro-inline-payment-panel-core.entry.js +1 -1
- package/dist/esm-es5/taro-input-core.entry.js +1 -1
- package/dist/esm-es5/taro-keyboard-accessory-core.entry.js +1 -1
- package/dist/esm-es5/taro-label-core.entry.js +1 -1
- package/dist/esm-es5/taro-lifestyle-core.entry.js +1 -1
- package/dist/esm-es5/taro-like-core.entry.js +1 -1
- package/dist/esm-es5/taro-list-builder-core.entry.js +1 -0
- package/dist/esm-es5/taro-list-view-core.entry.js +1 -1
- package/dist/esm-es5/taro-live-player-core.entry.js +1 -1
- package/dist/esm-es5/taro-live-pusher-core.entry.js +1 -1
- package/dist/esm-es5/taro-login-core.entry.js +1 -1
- package/dist/esm-es5/taro-lottie-core.entry.js +1 -1
- package/dist/esm-es5/taro-map-core.entry.js +1 -1
- package/dist/esm-es5/taro-match-media-core.entry.js +1 -1
- package/dist/esm-es5/taro-movable-area-core_2.entry.js +1 -1
- package/dist/esm-es5/taro-native-slot-core.entry.js +1 -1
- package/dist/esm-es5/taro-navigation-bar-core.entry.js +1 -1
- package/dist/esm-es5/taro-navigator-core.entry.js +1 -1
- package/dist/esm-es5/taro-nested-scroll-body-core.entry.js +1 -0
- package/dist/esm-es5/taro-nested-scroll-header-core.entry.js +1 -0
- package/dist/esm-es5/taro-official-account-core.entry.js +1 -1
- package/dist/esm-es5/taro-open-container-core.entry.js +1 -0
- package/dist/esm-es5/taro-open-data-core.entry.js +1 -1
- package/dist/esm-es5/taro-page-container-core.entry.js +1 -1
- package/dist/esm-es5/taro-page-meta-core.entry.js +1 -1
- package/dist/esm-es5/taro-picker-core_2.entry.js +1 -1
- package/dist/esm-es5/taro-picker-view-column-core_2.entry.js +1 -1
- package/dist/esm-es5/taro-progress-core.entry.js +1 -1
- package/dist/esm-es5/taro-pull-to-refresh-core.entry.js +1 -1
- package/dist/esm-es5/taro-radio-core_2.entry.js +1 -1
- package/dist/esm-es5/taro-rich-text-core.entry.js +1 -1
- package/dist/esm-es5/taro-root-portal-core.entry.js +1 -1
- package/dist/esm-es5/taro-rtc-room-core.entry.js +1 -1
- package/dist/esm-es5/taro-rtc-room-item-core.entry.js +1 -1
- package/dist/esm-es5/taro-scroll-view-core.entry.js +1 -1
- package/dist/esm-es5/taro-share-element-core.entry.js +1 -1
- package/dist/esm-es5/taro-slider-core.entry.js +1 -1
- package/dist/esm-es5/taro-slot-core.entry.js +1 -1
- package/dist/esm-es5/taro-snapshot-core.entry.js +1 -1
- package/dist/esm-es5/taro-span-core.entry.js +1 -0
- package/dist/esm-es5/taro-sticky-header-core.entry.js +1 -1
- package/dist/esm-es5/taro-sticky-section-core.entry.js +1 -1
- package/dist/esm-es5/taro-swiper-core_2.entry.js +1 -1
- package/dist/esm-es5/taro-switch-core.entry.js +1 -1
- package/dist/esm-es5/taro-tab-item-core.entry.js +1 -1
- package/dist/esm-es5/taro-tabbar.entry.js +1 -1
- package/dist/esm-es5/taro-tabs-core.entry.js +1 -1
- package/dist/esm-es5/taro-text-core.entry.js +1 -1
- package/dist/esm-es5/taro-textarea-core.entry.js +1 -1
- package/dist/esm-es5/taro-video-control_3.entry.js +1 -1
- package/dist/esm-es5/taro-view-core.entry.js +1 -1
- package/dist/esm-es5/taro-voip-room-core.entry.js +1 -1
- package/dist/esm-es5/taro-web-view-core.entry.js +1 -1
- package/dist/hydrate/index.d.ts +217 -0
- package/dist/hydrate/index.js +14603 -0
- package/dist/hydrate/package.json +6 -0
- package/dist/taro-components/p-010faa87.system.js +1 -0
- package/dist/taro-components/p-02465454.system.entry.js +1 -0
- package/dist/taro-components/{p-600d9210.entry.js → p-02d4d104.entry.js} +1 -1
- package/dist/taro-components/{p-74129eac.entry.js → p-03dc0283.entry.js} +1 -1
- package/dist/taro-components/p-047e4bfe.entry.js +1 -0
- package/dist/taro-components/{p-7b6f6526.system.entry.js → p-06adeb65.system.entry.js} +1 -1
- package/dist/taro-components/{p-95058ee1.entry.js → p-078cb65e.entry.js} +1 -1
- package/dist/taro-components/{p-bcf5d78a.system.entry.js → p-07ae6678.system.entry.js} +1 -1
- package/dist/taro-components/p-07f27474.entry.js +1 -0
- package/dist/taro-components/{p-014534ca.system.entry.js → p-083c3147.system.entry.js} +1 -1
- package/dist/taro-components/{p-e09e8b51.system.entry.js → p-0a64f78c.system.entry.js} +1 -1
- package/dist/taro-components/p-0f2c1ecc.entry.js +1 -0
- package/dist/taro-components/{p-d03136d7.system.entry.js → p-0f480c38.system.entry.js} +1 -1
- package/dist/taro-components/{p-ff7dfc5c.system.entry.js → p-0fc790c0.system.entry.js} +1 -1
- package/dist/taro-components/{p-e7d82e00.entry.js → p-0ff5a55b.entry.js} +1 -1
- package/dist/taro-components/p-12582166.entry.js +1 -0
- package/dist/taro-components/p-156e9634.system.entry.js +1 -0
- package/dist/taro-components/p-160d710a.js +7 -0
- package/dist/taro-components/{p-1ee83d63.system.entry.js → p-17938fa0.system.entry.js} +1 -1
- package/dist/taro-components/{p-758e3319.system.entry.js → p-17b9f865.system.entry.js} +1 -1
- package/dist/taro-components/{p-4cbd26dd.entry.js → p-17e72555.entry.js} +1 -1
- package/dist/taro-components/{p-dca5e9ee.entry.js → p-18c039ef.entry.js} +1 -1
- package/dist/taro-components/{p-3ca9aa19.system.entry.js → p-1bd4da3b.system.entry.js} +1 -1
- package/dist/taro-components/{p-67ff5a50.system.entry.js → p-1c37143a.system.entry.js} +1 -1
- package/dist/taro-components/{p-d36f8c4f.entry.js → p-1eea2828.entry.js} +1 -1
- package/dist/taro-components/p-204996e7.entry.js +1 -0
- package/dist/taro-components/{p-00d05751.entry.js → p-2649c7ae.entry.js} +1 -1
- package/dist/taro-components/p-26eb2f3f.entry.js +1 -0
- package/dist/taro-components/{p-3dadbe4c.system.entry.js → p-27041d86.system.entry.js} +1 -1
- package/dist/taro-components/{p-2059cbc0.system.entry.js → p-27d372b4.system.entry.js} +1 -1
- package/dist/taro-components/{p-c0f710ae.entry.js → p-280795f2.entry.js} +1 -1
- package/dist/taro-components/p-292470e5.entry.js +1 -0
- package/dist/taro-components/{p-8d437a7f.entry.js → p-2d537212.entry.js} +1 -1
- package/dist/taro-components/p-2f177716.entry.js +1 -0
- package/dist/taro-components/{p-9623f19c.system.entry.js → p-3293c5d9.system.entry.js} +1 -1
- package/dist/taro-components/{p-5bb60b5e.entry.js → p-32c0f326.entry.js} +1 -1
- package/dist/taro-components/{p-9e138188.entry.js → p-35dec732.entry.js} +1 -1
- package/dist/taro-components/{p-9b4e5578.entry.js → p-38b29261.entry.js} +1 -1
- package/dist/taro-components/{p-48e5ddaa.entry.js → p-3a180dc7.entry.js} +1 -1
- package/dist/taro-components/{p-ebf38559.system.entry.js → p-3b36196b.system.entry.js} +1 -1
- package/dist/taro-components/{p-445810cb.entry.js → p-3bfe9260.entry.js} +1 -1
- package/dist/taro-components/{p-e26c787b.entry.js → p-3cf08137.entry.js} +1 -1
- package/dist/taro-components/{p-4e4cc6ab.entry.js → p-402c7f93.entry.js} +1 -1
- package/dist/taro-components/p-425d1d69.entry.js +1 -0
- package/dist/taro-components/{p-a17b1a7e.entry.js → p-43367dd1.entry.js} +1 -1
- package/dist/taro-components/p-443b9a72.system.js +7 -0
- package/dist/taro-components/p-443e31ab.system.entry.js +1 -0
- package/dist/taro-components/{p-dc98486d.entry.js → p-4523b1c7.entry.js} +1 -1
- package/dist/taro-components/{p-16954dd6.entry.js → p-46a66c43.entry.js} +1 -1
- package/dist/taro-components/{p-015b3025.system.entry.js → p-47790dc0.system.entry.js} +1 -1
- package/dist/taro-components/{p-6229bb7d.system.entry.js → p-4979e93c.system.entry.js} +1 -1
- package/dist/taro-components/{p-caba17c6.system.entry.js → p-4a8b4d58.system.entry.js} +1 -1
- package/dist/taro-components/{p-1b42ba7e.system.entry.js → p-4ac48df1.system.entry.js} +1 -1
- package/dist/taro-components/{p-74b1be20.system.entry.js → p-4fad4beb.system.entry.js} +1 -1
- package/dist/taro-components/{p-35e96af8.system.entry.js → p-50849470.system.entry.js} +1 -1
- package/dist/taro-components/p-53e62840.system.entry.js +1 -0
- package/dist/taro-components/{p-2f403f7f.entry.js → p-55e12654.entry.js} +1 -1
- package/dist/taro-components/p-56552c9e.entry.js +1 -0
- package/dist/taro-components/{p-3bd04d38.entry.js → p-56a82bf3.entry.js} +1 -1
- package/dist/taro-components/{p-e457a83a.system.entry.js → p-57911e2c.system.entry.js} +1 -1
- package/dist/taro-components/{p-10d3c795.system.entry.js → p-57b77f17.system.entry.js} +1 -1
- package/dist/taro-components/{p-25bbf4aa.system.entry.js → p-5884c108.system.entry.js} +1 -1
- package/dist/taro-components/p-5893c3ed.js +1 -0
- package/dist/taro-components/{p-dbb47d14.system.entry.js → p-5b9aa4b0.system.entry.js} +1 -1
- package/dist/taro-components/{p-f554428f.system.entry.js → p-5c156db3.system.entry.js} +1 -1
- package/dist/taro-components/{p-846aa5ec.entry.js → p-5c98f478.entry.js} +1 -1
- package/dist/taro-components/p-5f23dc41.system.entry.js +1 -0
- package/dist/taro-components/{p-7f084a29.system.entry.js → p-61a325d2.system.entry.js} +1 -1
- package/dist/taro-components/{p-9a5bfa2a.system.entry.js → p-6282bdee.system.entry.js} +1 -1
- package/dist/taro-components/{p-9937cf08.system.entry.js → p-65d11e99.system.entry.js} +1 -1
- package/dist/taro-components/{p-80106cc2.system.entry.js → p-6654374e.system.entry.js} +1 -1
- package/dist/taro-components/{p-8e45a207.system.entry.js → p-6664a2ca.system.entry.js} +1 -1
- package/dist/taro-components/p-68197378.entry.js +1 -0
- package/dist/taro-components/p-6989c232.entry.js +1 -0
- package/dist/taro-components/{p-578f19ea.system.entry.js → p-6b83388c.system.entry.js} +1 -1
- package/dist/taro-components/p-6ba08ce0.system.entry.js +1 -0
- package/dist/taro-components/{p-61cb688a.entry.js → p-6cc0bcb9.entry.js} +1 -1
- package/dist/taro-components/p-7163d09e.system.js +1 -0
- package/dist/taro-components/{p-b8858af9.system.entry.js → p-75b4c1fc.system.entry.js} +1 -1
- package/dist/taro-components/p-75d01c60.system.js +2 -0
- package/dist/taro-components/{p-de3e1cee.system.entry.js → p-75ded8a0.system.entry.js} +1 -1
- package/dist/taro-components/p-77e82dfa.entry.js +1 -0
- package/dist/taro-components/{p-870e0d9d.entry.js → p-79cad66b.entry.js} +1 -1
- package/dist/taro-components/p-7ca2d075.system.entry.js +1 -0
- package/dist/taro-components/{p-34933f34.system.entry.js → p-7e054ae7.system.entry.js} +1 -1
- package/dist/taro-components/p-7e692c70.entry.js +1 -0
- package/dist/taro-components/p-7ebd4310.entry.js +1 -0
- package/dist/taro-components/p-7fdbcf4d.entry.js +1 -0
- package/dist/taro-components/{p-88c5f0eb.system.entry.js → p-8179438b.system.entry.js} +1 -1
- package/dist/taro-components/{p-2d6d4850.entry.js → p-84998109.entry.js} +1 -1
- package/dist/taro-components/{p-5a1bb2d3.system.entry.js → p-855619b6.system.entry.js} +1 -1
- package/dist/taro-components/{p-1d25f4e3.entry.js → p-8b0c9d3f.entry.js} +1 -1
- package/dist/taro-components/{p-ba50342b.system.entry.js → p-91ee1f8a.system.entry.js} +1 -1
- package/dist/taro-components/p-937a6c36.entry.js +1 -0
- package/dist/taro-components/{p-8df92f90.system.entry.js → p-938f9036.system.entry.js} +1 -1
- package/dist/taro-components/{p-87422c88.entry.js → p-93a2b2e9.entry.js} +1 -1
- package/dist/taro-components/p-93b02321.entry.js +1 -0
- package/dist/taro-components/p-9571836f.entry.js +1 -0
- package/dist/taro-components/{p-1e3d7899.system.entry.js → p-97b09fb4.system.entry.js} +1 -1
- package/dist/taro-components/p-9b6b17c4.system.entry.js +1 -0
- package/dist/taro-components/{p-26545e4e.system.entry.js → p-9e359fff.system.entry.js} +1 -1
- package/dist/taro-components/{p-bdee068b.system.entry.js → p-9f53e26c.system.entry.js} +1 -1
- package/dist/taro-components/{p-d78ab2de.system.entry.js → p-a25aca16.system.entry.js} +1 -1
- package/dist/taro-components/p-a50c6736.entry.js +1 -0
- package/dist/taro-components/{p-205a0692.system.entry.js → p-a96f8f60.system.entry.js} +1 -1
- package/dist/taro-components/{p-75b927b4.system.entry.js → p-a9ca8247.system.entry.js} +1 -1
- package/dist/taro-components/p-aabac550.entry.js +1 -0
- package/dist/taro-components/p-ab0e0366.system.entry.js +1 -0
- package/dist/taro-components/p-ac2be5f3.entry.js +1 -0
- package/dist/taro-components/{p-170ce205.system.entry.js → p-ac714300.system.entry.js} +1 -1
- package/dist/taro-components/{p-54941baf.system.entry.js → p-ac9fb309.system.entry.js} +1 -1
- package/dist/taro-components/p-acb113bd.entry.js +1 -0
- package/dist/taro-components/p-b087ad2a.system.entry.js +1 -0
- package/dist/taro-components/{p-d60b66c2.entry.js → p-b1f80b6b.entry.js} +1 -1
- package/dist/taro-components/{p-92daad3f.system.entry.js → p-b4577a12.system.entry.js} +1 -1
- package/dist/taro-components/{p-55be4215.entry.js → p-b4c7bb48.entry.js} +1 -1
- package/dist/taro-components/p-ba11ef7d.entry.js +1 -0
- package/dist/taro-components/{p-3d76b46e.system.entry.js → p-ba5e7ec4.system.entry.js} +1 -1
- package/dist/taro-components/{p-861834ce.entry.js → p-bb67318d.entry.js} +1 -1
- package/dist/taro-components/{p-970623a1.entry.js → p-bd57edcd.entry.js} +1 -1
- package/dist/taro-components/{p-8b70fd1d.entry.js → p-be055537.entry.js} +1 -1
- package/dist/taro-components/{p-6e9d509a.entry.js → p-be1701b2.entry.js} +1 -1
- package/dist/taro-components/{p-6cf765b7.system.entry.js → p-c056d527.system.entry.js} +1 -1
- package/dist/taro-components/{p-b04cdd9a.system.entry.js → p-c0c567e5.system.entry.js} +1 -1
- package/dist/taro-components/{p-9890bb7b.entry.js → p-c3dc7072.entry.js} +1 -1
- package/dist/taro-components/{p-0cf04b3d.system.entry.js → p-c677414d.system.entry.js} +1 -1
- package/dist/taro-components/p-c71d5745.system.entry.js +1 -0
- package/dist/taro-components/{p-510a69b3.entry.js → p-c7836e2b.entry.js} +1 -1
- package/dist/taro-components/p-c7d8c076.system.entry.js +1 -0
- package/dist/taro-components/{p-37593ce7.entry.js → p-c8cd6e16.entry.js} +1 -1
- package/dist/taro-components/p-c95d2b90.entry.js +1 -0
- package/dist/taro-components/{p-a197cbae.system.entry.js → p-ca6a5916.system.entry.js} +1 -1
- package/dist/taro-components/{p-07e94301.system.entry.js → p-cae6c5d0.system.entry.js} +1 -1
- package/dist/taro-components/{p-50e1ba06.system.entry.js → p-cafbb3d9.system.entry.js} +1 -1
- package/dist/taro-components/{p-2f683899.entry.js → p-ccbaba23.entry.js} +1 -1
- package/dist/taro-components/{p-940d41e9.system.entry.js → p-d05eb105.system.entry.js} +1 -1
- package/dist/taro-components/{p-352b6b6b.system.entry.js → p-d2203687.system.entry.js} +1 -1
- package/dist/taro-components/{p-bb712e32.entry.js → p-d5603857.entry.js} +1 -1
- package/dist/taro-components/{p-290fd78b.system.entry.js → p-d73b3a94.system.entry.js} +1 -1
- package/dist/taro-components/p-d87a68f6.entry.js +1 -0
- package/dist/taro-components/{p-bdd7b5a9.entry.js → p-d973d536.entry.js} +1 -1
- package/dist/taro-components/{p-e25c2a22.entry.js → p-d9884371.entry.js} +1 -1
- package/dist/taro-components/p-dc08715a.entry.js +1 -0
- package/dist/taro-components/{p-4928ee37.entry.js → p-dc25fa81.entry.js} +1 -1
- package/dist/taro-components/p-dcf5747c.system.entry.js +1 -0
- package/dist/taro-components/{p-581e844d.system.entry.js → p-ddf75d6a.system.entry.js} +1 -1
- package/dist/taro-components/{p-02dd30fa.system.entry.js → p-ded98693.system.entry.js} +1 -1
- package/dist/taro-components/{p-2dea35fd.entry.js → p-dedf50a9.entry.js} +1 -1
- package/dist/taro-components/{p-040f15f2.system.entry.js → p-df7c6216.system.entry.js} +1 -1
- package/dist/taro-components/{p-64f5abce.entry.js → p-e1cce2f1.entry.js} +1 -1
- package/dist/taro-components/p-e2e7bc16.entry.js +1 -0
- package/dist/taro-components/p-e3d825d1.system.entry.js +1 -0
- package/dist/taro-components/p-e5ef41f2.system.entry.js +1 -0
- package/dist/taro-components/p-e62a1287.js +2 -0
- package/dist/taro-components/p-e681d764.entry.js +1 -0
- package/dist/taro-components/{p-a2a70581.system.entry.js → p-e853a2c8.system.entry.js} +1 -1
- package/dist/taro-components/{p-2bbdbe9c.system.entry.js → p-ebad862a.system.entry.js} +1 -1
- package/dist/taro-components/{p-b8e2465a.entry.js → p-ebb1ae64.entry.js} +1 -1
- package/dist/taro-components/{p-80278124.entry.js → p-f034a433.entry.js} +1 -1
- package/dist/taro-components/{p-ba195b39.entry.js → p-f168fffc.entry.js} +1 -1
- package/dist/taro-components/p-f367a754.entry.js +1 -0
- package/dist/taro-components/{p-128f9eb0.entry.js → p-f43f26cf.entry.js} +1 -1
- package/dist/taro-components/{p-bba220a9.entry.js → p-f5f3a111.entry.js} +1 -1
- package/dist/taro-components/{p-3e9bf572.entry.js → p-f8f2461f.entry.js} +1 -1
- package/dist/taro-components/{p-c11fcb25.system.entry.js → p-f9935901.system.entry.js} +1 -1
- package/dist/taro-components/{p-7cecf08e.system.entry.js → p-fa31b2de.system.entry.js} +1 -1
- package/dist/taro-components/{p-1ced140d.entry.js → p-fab63183.entry.js} +1 -1
- package/dist/taro-components/{p-114f89d6.system.entry.js → p-fbf13159.system.entry.js} +1 -1
- package/dist/taro-components/{p-dc6db06e.system.entry.js → p-fe5eefdc.system.entry.js} +1 -1
- package/dist/taro-components/{p-28bf8423.system.entry.js → p-feb89474.system.entry.js} +1 -1
- package/dist/taro-components/p-ff772345.entry.js +1 -0
- package/dist/taro-components/taro-components.css +1 -1
- package/dist/taro-components/taro-components.esm.js +1 -1
- package/dist/taro-components/taro-components.js +1 -1
- package/dist/types/components/draggable-sheet/draggable-sheet.d.ts +5 -0
- package/dist/types/components/grid-builder/grid-builder.d.ts +5 -0
- package/dist/types/components/list-builder/list-builder.d.ts +5 -0
- package/dist/types/components/map/map.d.ts +145 -2
- package/dist/types/components/nested-scroll-body/nested-scroll-body.d.ts +5 -0
- package/dist/types/components/nested-scroll-header/nested-scroll-header.d.ts +5 -0
- package/dist/types/components/open-container/open-container.d.ts +5 -0
- package/dist/types/components/span/span.d.ts +5 -0
- package/dist/types/components/swiper/swiper.d.ts +5 -0
- package/dist/types/components.d.ts +313 -1
- package/dist/types/utils/index.d.ts +2 -0
- package/global.css +1 -0
- package/lib/react/component-lib/index.d.ts +53 -53
- package/lib/react/component-lib/input.d.ts +1 -1
- package/lib/react/component-lib/input.js.map +1 -1
- package/lib/react/component-lib/reactify-wc.d.ts +1 -1
- package/lib/react/component-lib/reactify-wc.js.map +1 -1
- package/lib/react/components.d.ts +92 -85
- package/lib/react/components.js +11 -2
- package/lib/react/components.js.map +1 -1
- package/lib/react/helper.d.ts +4 -2
- package/lib/react/helper.js.map +1 -1
- package/lib/react/index.d.ts +1 -1
- package/lib/react/index.js +1 -1
- package/lib/react/node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.18.0_tslib@2.6.2_typescript@5.4.5/node_modules/tslib/tslib.es6.js +373 -0
- package/lib/react/node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.18.0_tslib@2.6.2_typescript@5.4.5/node_modules/tslib/tslib.es6.js.map +1 -0
- package/lib/react/react-component-lib/createComponent.d.ts +3 -3
- package/lib/react/react-component-lib/createComponent.js +1 -1
- package/lib/react/react-component-lib/createComponent.js.map +1 -1
- package/lib/react/react-component-lib/createOverlayComponent.d.ts +5 -5
- package/lib/react/react-component-lib/createOverlayComponent.js +1 -1
- package/lib/react/react-component-lib/createOverlayComponent.js.map +1 -1
- package/lib/react/react-component-lib/index.d.ts +2 -2
- package/lib/react/{interfaces-f526f1a2.d.ts → react-component-lib/interfaces.d.ts} +4 -5
- package/lib/react/react-component-lib/utils/attachProps.d.ts +6 -6
- package/lib/react/react-component-lib/utils/attachProps.js +2 -2
- package/lib/react/react-component-lib/utils/attachProps.js.map +1 -1
- package/lib/react/react-component-lib/utils/case.d.ts +2 -3
- package/lib/react/react-component-lib/utils/dev.d.ts +6 -0
- package/lib/react/react-component-lib/utils/index.d.ts +9 -10
- package/lib/react/react-component-lib/utils/index.js.map +1 -1
- package/lib/solid/component-lib/index.d.ts +53 -0
- package/lib/solid/component-lib/index.js +69 -0
- package/lib/solid/component-lib/index.js.map +1 -0
- package/lib/solid/components.d.ts +92 -0
- package/lib/solid/components.js +102 -0
- package/lib/solid/components.js.map +1 -0
- package/lib/solid/helper.d.ts +3 -0
- package/lib/solid/helper.js +7 -0
- package/lib/solid/helper.js.map +1 -0
- package/lib/solid/index.d.ts +1 -0
- package/lib/solid/index.js +2 -0
- package/lib/solid/solid-component-lib/createComponent.d.ts +10 -0
- package/lib/solid/solid-component-lib/createComponent.js +67 -0
- package/lib/solid/solid-component-lib/createComponent.js.map +1 -0
- package/lib/solid/solid-component-lib/index.d.ts +1 -0
- package/lib/solid/solid-component-lib/index.js +2 -0
- package/lib/solid/solid-component-lib/index.js.map +1 -0
- package/lib/solid/solid-component-lib/interfaces.d.ts +33 -0
- package/lib/solid/solid-component-lib/utils/case.d.ts +3 -0
- package/lib/solid/solid-component-lib/utils/case.js +6 -0
- package/lib/solid/solid-component-lib/utils/case.js.map +1 -0
- package/lib/solid/solid-component-lib/utils/element.d.ts +6 -0
- package/lib/solid/solid-component-lib/utils/element.js +48 -0
- package/lib/solid/solid-component-lib/utils/element.js.map +1 -0
- package/lib/solid/solid-component-lib/utils/index.d.ts +2 -0
- package/lib/solid/solid-component-lib/utils/index.js +3 -0
- package/lib/solid/solid-component-lib/utils/index.js.map +1 -0
- package/lib/vue3/component-lib/createComponent.d.ts +1 -2
- package/lib/vue3/component-lib/createFormsComponent.d.ts +1 -2
- package/lib/vue3/component-lib/createFormsComponent.js.map +1 -1
- package/lib/vue3/component-lib/forwardRef.d.ts +1 -2
- package/lib/vue3/component-lib/icon.d.ts +1 -1
- package/lib/vue3/component-lib/image.d.ts +1 -1
- package/lib/vue3/component-lib/index.d.ts +52 -53
- package/lib/vue3/component-lib/scroll-view.d.ts +1 -1
- package/lib/vue3/component-lib/scroll-view.js.map +1 -1
- package/lib/vue3/component-lib/text.d.ts +1 -1
- package/lib/vue3/components-loader.d.ts +1 -2
- package/lib/vue3/components-loader.js.map +1 -1
- package/lib/vue3/components.d.ts +91 -85
- package/lib/vue3/components.js +41 -3
- package/lib/vue3/components.js.map +1 -1
- package/lib/vue3/index.d.ts +1 -1
- package/lib/vue3/index.js +1 -1
- package/lib/vue3/vue-component-lib/utils.d.ts +2 -3
- package/lib/vue3/vue-component-lib/utils.js.map +1 -1
- package/package.json +30 -21
- package/types/Canvas.d.ts +1 -1
- package/types/DraggableSheet.d.ts +47 -0
- package/types/GridBuilder.d.ts +72 -0
- package/types/GridView.d.ts +18 -4
- package/types/Input.d.ts +2 -1
- package/types/ListBuilder.d.ts +55 -0
- package/types/ListView.d.ts +9 -2
- package/types/Map.d.ts +0 -2
- package/types/NavigationBar.d.ts +5 -5
- package/types/NestedScrollBody.d.ts +15 -0
- package/types/NestedScrollHeader.d.ts +15 -0
- package/types/OpenContainer.d.ts +74 -0
- package/types/PageMeta.d.ts +13 -7
- package/types/Picker.d.ts +6 -1
- package/types/PickerView.d.ts +1 -0
- package/types/Script.d.ts +37 -0
- package/types/ScrollView.d.ts +8 -2
- package/types/ShareElement.d.ts +1 -0
- package/types/Slider.d.ts +3 -2
- package/types/Snapshot.d.ts +12 -3
- package/types/Span.d.ts +14 -0
- package/types/StickyHeader.d.ts +15 -2
- package/types/StickySection.d.ts +7 -1
- package/types/Swiper.d.ts +1 -3
- package/types/Switch.d.ts +2 -1
- package/types/Text.d.ts +16 -0
- package/types/Textarea.d.ts +2 -1
- package/types/common.d.ts +2 -2
- package/types/index.d.ts +8 -0
- package/types/index.vue3.d.ts +4 -0
- package/dist/esm-es5/index-486e187e.js +0 -2
- package/dist/esm-es5/index-c3e4004b.js +0 -7
- package/dist/esm-es5/index-d1b03e47.js +0 -1
- package/dist/taro-components/p-06cf6b18.system.entry.js +0 -1
- package/dist/taro-components/p-0e3d8ada.entry.js +0 -1
- package/dist/taro-components/p-101f49dd.entry.js +0 -1
- package/dist/taro-components/p-1182efdd.system.entry.js +0 -1
- package/dist/taro-components/p-2ec68968.system.js +0 -7
- package/dist/taro-components/p-30623371.entry.js +0 -1
- package/dist/taro-components/p-387f300a.entry.js +0 -1
- package/dist/taro-components/p-3afbae36.entry.js +0 -1
- package/dist/taro-components/p-4408d796.entry.js +0 -1
- package/dist/taro-components/p-449f60fa.entry.js +0 -1
- package/dist/taro-components/p-46661961.entry.js +0 -1
- package/dist/taro-components/p-4e4ac1fe.system.entry.js +0 -1
- package/dist/taro-components/p-5307637c.system.entry.js +0 -1
- package/dist/taro-components/p-6066e633.entry.js +0 -1
- package/dist/taro-components/p-69e747dc.entry.js +0 -1
- package/dist/taro-components/p-6bbb639a.system.js +0 -2
- package/dist/taro-components/p-6f027b85.entry.js +0 -1
- package/dist/taro-components/p-72b954ce.system.entry.js +0 -1
- package/dist/taro-components/p-764cd497.entry.js +0 -1
- package/dist/taro-components/p-7bd1345f.entry.js +0 -1
- package/dist/taro-components/p-83699a53.entry.js +0 -1
- package/dist/taro-components/p-95e88e0f.entry.js +0 -1
- package/dist/taro-components/p-98b1fc13.js +0 -2
- package/dist/taro-components/p-a61e195b.entry.js +0 -1
- package/dist/taro-components/p-a972aa1d.system.js +0 -1
- package/dist/taro-components/p-ae128150.entry.js +0 -1
- package/dist/taro-components/p-b317674b.entry.js +0 -1
- package/dist/taro-components/p-b6694eb3.system.entry.js +0 -1
- package/dist/taro-components/p-b9f19e77.entry.js +0 -1
- package/dist/taro-components/p-bb87373d.entry.js +0 -1
- package/dist/taro-components/p-bd5177d3.system.js +0 -1
- package/dist/taro-components/p-bf0d2c21.system.entry.js +0 -1
- package/dist/taro-components/p-cbc19d63.entry.js +0 -1
- package/dist/taro-components/p-d3c7f87d.js +0 -1
- package/dist/taro-components/p-de951a46.js +0 -7
- package/dist/taro-components/p-e1c2e636.entry.js +0 -1
- package/dist/taro-components/p-eeb6aeb5.system.entry.js +0 -1
- package/dist/taro-components/p-ef0aff29.entry.js +0 -1
- package/dist/taro-components/p-fd1d75db.entry.js +0 -1
- package/lib/vue2/component-lib/components.d.ts +0 -111
- package/lib/vue2/component-lib/components.js +0 -74
- package/lib/vue2/component-lib/components.js.map +0 -1
- package/lib/vue2/component-lib/createComponent.d.ts +0 -14
- package/lib/vue2/component-lib/createComponent.js +0 -23
- package/lib/vue2/component-lib/createComponent.js.map +0 -1
- package/lib/vue2/component-lib/createFormsComponent.d.ts +0 -22
- package/lib/vue2/component-lib/createFormsComponent.js +0 -53
- package/lib/vue2/component-lib/createFormsComponent.js.map +0 -1
- package/lib/vue2/component-lib/icon.d.ts +0 -16
- package/lib/vue2/component-lib/icon.js +0 -23
- package/lib/vue2/component-lib/icon.js.map +0 -1
- package/lib/vue2/component-lib/image.d.ts +0 -16
- package/lib/vue2/component-lib/image.js +0 -24
- package/lib/vue2/component-lib/image.js.map +0 -1
- package/lib/vue2/component-lib/index.d.ts +0 -1
- package/lib/vue2/component-lib/index.js +0 -25
- package/lib/vue2/component-lib/index.js.map +0 -1
- package/lib/vue2/component-lib/mixins/listeners.d.ts +0 -6
- package/lib/vue2/component-lib/mixins/listeners.js +0 -14
- package/lib/vue2/component-lib/mixins/listeners.js.map +0 -1
- package/lib/vue2/component-lib/mixins/refs.d.ts +0 -5
- package/lib/vue2/component-lib/mixins/refs.js +0 -53
- package/lib/vue2/component-lib/mixins/refs.js.map +0 -1
- package/lib/vue2/component-lib/picker.d.ts +0 -25
- package/lib/vue2/component-lib/picker.js +0 -41
- package/lib/vue2/component-lib/picker.js.map +0 -1
- package/lib/vue2/component-lib/scroll-view.d.ts +0 -17
- package/lib/vue2/component-lib/scroll-view.js +0 -35
- package/lib/vue2/component-lib/scroll-view.js.map +0 -1
- package/lib/vue2/component-lib/text.d.ts +0 -16
- package/lib/vue2/component-lib/text.js +0 -24
- package/lib/vue2/component-lib/text.js.map +0 -1
- package/lib/vue2/components-loader.d.ts +0 -2
- package/lib/vue2/components-loader.js +0 -21
- package/lib/vue2/components-loader.js.map +0 -1
- package/lib/vue2/components.d.ts +0 -373
- package/lib/vue2/components.js +0 -583
- package/lib/vue2/components.js.map +0 -1
- package/lib/vue2/index.d.ts +0 -1
- package/lib/vue2/index.js +0 -2
- package/lib/vue2/node_modules/.pnpm/registry.npmjs.org_vue-fragment@1.6.0_vue@2.7.14/node_modules/vue-fragment/dist/vue-fragment.esm.js +0 -4
- package/lib/vue2/node_modules/.pnpm/registry.npmjs.org_vue-fragment@1.6.0_vue@2.7.14/node_modules/vue-fragment/dist/vue-fragment.esm.js.map +0 -1
- package/lib/vue2/vue-component-lib/utils.d.ts +0 -10
- package/lib/vue2/vue-component-lib/utils.js +0 -51
- package/lib/vue2/vue-component-lib/utils.js.map +0 -1
- /package/lib/{vue2 → solid}/index.js.map +0 -0
|
@@ -2,20 +2,1339 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
6
|
-
const
|
|
7
|
-
|
|
5
|
+
const index = require('./index-09efe07d.js');
|
|
6
|
+
const Hammer = require('hammerjs');
|
|
7
|
+
|
|
8
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
|
+
|
|
10
|
+
const Hammer__default = /*#__PURE__*/_interopDefaultLegacy(Hammer);
|
|
11
|
+
|
|
12
|
+
const mapCss = ".BMap_cpyCtrl,.anchorBL img,.BMap_bubble_buttons{display:none}";
|
|
8
13
|
|
|
9
14
|
const Map = class {
|
|
10
15
|
constructor(hostRef) {
|
|
11
16
|
index.registerInstance(this, hostRef);
|
|
17
|
+
this.onTap = index.createEvent(this, "tap", 7);
|
|
18
|
+
this.currentRotation = 0;
|
|
19
|
+
/* 获取当前地图中心的经纬度 */
|
|
20
|
+
this._getCenterLocation = (option) => {
|
|
21
|
+
// 遍历当前的覆盖物,找到之前添加的中心点图标并删除它
|
|
22
|
+
this.map.getOverlays().forEach((overlay) => {
|
|
23
|
+
if (overlay instanceof BMapGL.Marker && overlay.isCenterMarker) {
|
|
24
|
+
this.map.removeOverlay(overlay);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
// 创建自定义图标并设置图标位置
|
|
28
|
+
option.iconPath = 'https://img0.baidu.com/it/u=2604176863,3349829508&fm=253&fmt=auto&app=138&f=PNG?w=243&h=243';
|
|
29
|
+
const icon = new BMapGL.Icon(option.iconPath, new BMapGL.Size(20, 30));
|
|
30
|
+
// 将经纬度从BD09转换为GCJ02
|
|
31
|
+
const gcj02Point = [this.longitude, this.latitude];
|
|
32
|
+
const marker = new BMapGL.Marker(new BMapGL.Point(this.longitude, this.latitude), { icon });
|
|
33
|
+
marker.isCenterMarker = true; // 标记该覆盖物是中心点图标
|
|
34
|
+
// 添加新的图标
|
|
35
|
+
this.map.addOverlay(marker);
|
|
36
|
+
return gcj02Point;
|
|
37
|
+
};
|
|
38
|
+
/* 设置定位点图标,支持网络路径、本地路径、代码包路径 */
|
|
39
|
+
this._setLocMarkerIcon = (option) => {
|
|
40
|
+
// 创建自定义图标
|
|
41
|
+
const icon = new BMapGL.Icon(option.iconPath, new BMapGL.Size(20, 30));
|
|
42
|
+
// 创建定位点并设置图标
|
|
43
|
+
const point = new BMapGL.Point(116.404, 39.915);
|
|
44
|
+
const marker = new BMapGL.Marker(point, { icon });
|
|
45
|
+
this.map.addOverlay(marker);
|
|
46
|
+
};
|
|
47
|
+
/* 平移marker,带动画 */
|
|
48
|
+
this._translateMarker = (option) => {
|
|
49
|
+
let latitude = option.destination.latitude;
|
|
50
|
+
const longitude = option.destination.longitude;
|
|
51
|
+
if (latitude < -80 && latitude >= -90) {
|
|
52
|
+
latitude = option.destination.latitude + 10;
|
|
53
|
+
}
|
|
54
|
+
const destinationPoint = new BMapGL.Point(longitude, latitude);
|
|
55
|
+
const obj = {
|
|
56
|
+
flagId: true,
|
|
57
|
+
flagCoordinate: true // 标记是否有有效经纬度
|
|
58
|
+
};
|
|
59
|
+
const animationEndResult = {
|
|
60
|
+
errMsg: 'animationEnd:ok',
|
|
61
|
+
};
|
|
62
|
+
// 获取所有覆盖物
|
|
63
|
+
const overlays = this.map.getOverlays();
|
|
64
|
+
// 查找指定 id 的 Marker 对象
|
|
65
|
+
const targetMarker = overlays.find((overlay) => overlay instanceof BMapGL.Marker && overlay.id === option.markerId);
|
|
66
|
+
if (!targetMarker) {
|
|
67
|
+
console.error(`Marker "${option.markerId}" not found.`);
|
|
68
|
+
obj.flagId = false;
|
|
69
|
+
return obj;
|
|
70
|
+
}
|
|
71
|
+
if (latitude > 90 || latitude < -90 || longitude > 180 || longitude < -180 || isNaN(latitude) || isNaN(longitude)) {
|
|
72
|
+
obj.flagCoordinate = false;
|
|
73
|
+
return obj;
|
|
74
|
+
}
|
|
75
|
+
// 计算平移步长
|
|
76
|
+
const startLngLat = targetMarker.getPosition();
|
|
77
|
+
const step = {
|
|
78
|
+
lng: (destinationPoint.lng - startLngLat.lng) / (option.duration / 16),
|
|
79
|
+
lat: (destinationPoint.lat - startLngLat.lat) / (option.duration / 16), // 每帧移动的纬度增量
|
|
80
|
+
};
|
|
81
|
+
// 计算旋转角度的步长
|
|
82
|
+
const startRotation = targetMarker.getRotation(); // 获取起始旋转角度
|
|
83
|
+
const targetRotation = option.rotate; // 设置目标旋转角度
|
|
84
|
+
if (!this.currentRotation) {
|
|
85
|
+
this.currentRotation = targetRotation;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
this.currentRotation += targetRotation;
|
|
89
|
+
}
|
|
90
|
+
const rotationStep = (this.currentRotation - startRotation) / (option.duration / 16);
|
|
91
|
+
// 执行平移动画
|
|
92
|
+
let currentLngLat = startLngLat;
|
|
93
|
+
let currentRotation = startRotation;
|
|
94
|
+
if (!option.moveWithRotate && option.autoRotate) {
|
|
95
|
+
let currentFrame = 0; // 用于平移动画的计数器
|
|
96
|
+
// 执行平移动画
|
|
97
|
+
const animationInterval = setInterval(() => {
|
|
98
|
+
currentLngLat = new BMapGL.Point(currentLngLat.lng + step.lng, currentLngLat.lat + step.lat);
|
|
99
|
+
targetMarker.setPosition(currentLngLat);
|
|
100
|
+
currentFrame++;
|
|
101
|
+
if (currentFrame >= option.duration / 16) {
|
|
102
|
+
clearInterval(animationInterval);
|
|
103
|
+
let rotationFrame = 0; // 用于旋转动画的计数器
|
|
104
|
+
// 在到达目的地后执行旋转动画
|
|
105
|
+
const rotationInterval = setInterval(() => {
|
|
106
|
+
currentRotation += rotationStep;
|
|
107
|
+
targetMarker.setRotation(currentRotation);
|
|
108
|
+
rotationFrame++;
|
|
109
|
+
if (rotationFrame >= option.duration / 16) {
|
|
110
|
+
clearInterval(rotationInterval); // 清除旋转动画的定时器
|
|
111
|
+
option === null || option === void 0 ? void 0 : option.animationEnd(animationEndResult);
|
|
112
|
+
}
|
|
113
|
+
}, 16);
|
|
114
|
+
}
|
|
115
|
+
}, 16);
|
|
116
|
+
}
|
|
117
|
+
else if (option.moveWithRotate && option.autoRotate) {
|
|
118
|
+
let currentFrame = 0; // 定义局部变量
|
|
119
|
+
const animationInterval = setInterval(() => {
|
|
120
|
+
currentLngLat = new BMapGL.Point(currentLngLat.lng + step.lng, currentLngLat.lat + step.lat);
|
|
121
|
+
targetMarker.setPosition(currentLngLat);
|
|
122
|
+
currentRotation += rotationStep;
|
|
123
|
+
targetMarker.setRotation(currentRotation);
|
|
124
|
+
currentFrame++;
|
|
125
|
+
if (currentFrame >= option.duration / 16) {
|
|
126
|
+
clearInterval(animationInterval);
|
|
127
|
+
option === null || option === void 0 ? void 0 : option.animationEnd(animationEndResult);
|
|
128
|
+
}
|
|
129
|
+
}, 16);
|
|
130
|
+
}
|
|
131
|
+
else if (option.moveWithRotate && !option.autoRotate) {
|
|
132
|
+
let currentFrame = 0; // 定义局部变量
|
|
133
|
+
const animationInterval = setInterval(() => {
|
|
134
|
+
currentLngLat = new BMapGL.Point(currentLngLat.lng + step.lng, currentLngLat.lat + step.lat);
|
|
135
|
+
targetMarker.setPosition(currentLngLat);
|
|
136
|
+
currentFrame++;
|
|
137
|
+
if (currentFrame >= option.duration / 16) {
|
|
138
|
+
clearInterval(animationInterval);
|
|
139
|
+
option === null || option === void 0 ? void 0 : option.animationEnd(animationEndResult);
|
|
140
|
+
}
|
|
141
|
+
}, 16);
|
|
142
|
+
}
|
|
143
|
+
return obj;
|
|
144
|
+
};
|
|
145
|
+
/* 缩放视野展示所有经纬度 */
|
|
146
|
+
this._includePoints = (option) => {
|
|
147
|
+
const bPoints = option.points.map((point) => new BMapGL.Point(point.longitude, point.latitude));
|
|
148
|
+
const originalZoom = this.map.getZoom();
|
|
149
|
+
const originalCenter = this.map.getCenter();
|
|
150
|
+
const view = this.map.getViewport(bPoints);
|
|
151
|
+
// 地图缩放后
|
|
152
|
+
this.map.centerAndZoom(view.center, view.zoom);
|
|
153
|
+
const bounds = this.map.getBounds();
|
|
154
|
+
let flag = true;
|
|
155
|
+
for (let i = 0; i < bPoints.length; i++) {
|
|
156
|
+
if (!bounds.containsPoint(bPoints[i])) {
|
|
157
|
+
this.map.centerAndZoom(originalCenter, originalZoom);
|
|
158
|
+
flag = false;
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return flag;
|
|
163
|
+
};
|
|
164
|
+
/* 获取当前地图的视野范围 */
|
|
165
|
+
this._getRegion = () => {
|
|
166
|
+
// 获取地图当前视野范围
|
|
167
|
+
const bounds = this.map.getBounds();
|
|
168
|
+
const sw = bounds.getSouthWest(); // 西南角坐标
|
|
169
|
+
const ne = bounds.getNorthEast(); // 东北角坐标
|
|
170
|
+
return {
|
|
171
|
+
southwest: { lat: sw.lat, lng: sw.lng },
|
|
172
|
+
northeast: { lat: ne.lat, lng: ne.lng },
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
/* 获取当前地图的旋转角 */
|
|
176
|
+
this._getRotate = () => {
|
|
177
|
+
// 获取地图当前旋转角度
|
|
178
|
+
let rotation = this.rotate;
|
|
179
|
+
if (rotation < 0 || rotation > 360) {
|
|
180
|
+
rotation = 0;
|
|
181
|
+
}
|
|
182
|
+
return rotation;
|
|
183
|
+
};
|
|
184
|
+
/* 获取当前地图的倾斜角 */
|
|
185
|
+
this._getSkew = () => {
|
|
186
|
+
let Skew = this.skew;
|
|
187
|
+
if (Skew < 0 || Skew > 40) {
|
|
188
|
+
Skew = 0;
|
|
189
|
+
}
|
|
190
|
+
return Skew;
|
|
191
|
+
};
|
|
192
|
+
/* 获取当前地图的缩放级别 */
|
|
193
|
+
this._getScale = () => {
|
|
194
|
+
const Scale = this.scale;
|
|
195
|
+
return Scale;
|
|
196
|
+
};
|
|
197
|
+
/* 设置地图中心点偏移,向后向下为增长 */
|
|
198
|
+
this._setCenterOffset = (option) => {
|
|
199
|
+
// 解构获取偏移量参数
|
|
200
|
+
const [x, y] = option.offset;
|
|
201
|
+
// 获取地图尺寸
|
|
202
|
+
const mapSize = this.map.getSize();
|
|
203
|
+
// 计算水平偏移量
|
|
204
|
+
const offsetX = Math.max(0.25 * mapSize.width, Math.min(0.75 * mapSize.width, x * mapSize.width));
|
|
205
|
+
// 计算垂直偏移量
|
|
206
|
+
const offsetY = Math.max(0.25 * mapSize.height, Math.min(0.75 * mapSize.height, y * mapSize.height));
|
|
207
|
+
// 创建像素坐标对象
|
|
208
|
+
const pixel = new BMapGL.Pixel(offsetX, offsetY);
|
|
209
|
+
// 将像素坐标转换为地理坐标
|
|
210
|
+
const center = this.map.pixelToPoint(pixel);
|
|
211
|
+
// 平移地图至指定中心点
|
|
212
|
+
this.map.panTo(center);
|
|
213
|
+
};
|
|
214
|
+
/* 添加 marker */
|
|
215
|
+
this._addMarkers = (option) => {
|
|
216
|
+
if (option.clear) {
|
|
217
|
+
// 清除地图上所有marker
|
|
218
|
+
this.map.clearOverlays(this.markers);
|
|
219
|
+
}
|
|
220
|
+
option.markers.forEach((marker) => {
|
|
221
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
222
|
+
if (marker.latitude && marker.longitude && marker.iconPath) {
|
|
223
|
+
const pt = new BMapGL.Point(marker.longitude, marker.latitude);
|
|
224
|
+
const markerObj = new BMapGL.Marker(pt, { enableClicking: true });
|
|
225
|
+
this.map.addOverlay(markerObj);
|
|
226
|
+
markerObj.id = marker.id; // 设置标记点的唯一标识符
|
|
227
|
+
markerObj.alpha = marker.alpha;
|
|
228
|
+
if (marker.zIndex) {
|
|
229
|
+
markerObj.setZIndex(marker.zIndex);
|
|
230
|
+
}
|
|
231
|
+
if (marker.width && marker.height && marker.iconPath) {
|
|
232
|
+
const icon = new BMapGL.Icon(marker.iconPath, new BMapGL.Size(marker.width, marker.height));
|
|
233
|
+
markerObj.setIcon(icon);
|
|
234
|
+
}
|
|
235
|
+
else if (marker.iconPath) {
|
|
236
|
+
const img = new Image();
|
|
237
|
+
img.src = marker.iconPath;
|
|
238
|
+
img.style.opacity = String(marker.alpha);
|
|
239
|
+
img.onload = () => {
|
|
240
|
+
const iconSize = new BMapGL.Size(img.width, img.height);
|
|
241
|
+
const icon = new BMapGL.Icon(img.src, iconSize);
|
|
242
|
+
icon.imageOffset = new BMapGL.Size(0, 0, marker.alpha || 1);
|
|
243
|
+
markerObj.setIcon(icon);
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
console.error('没有找到iconPath图片路径');
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
const rotate = marker.rotate ? marker.rotate : 0;
|
|
251
|
+
if (rotate) {
|
|
252
|
+
markerObj.setRotation(rotate);
|
|
253
|
+
}
|
|
254
|
+
if (marker.anchor) {
|
|
255
|
+
const offsetX = ((_b = (_a = marker.anchor) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : 0) * (marker.width || 0);
|
|
256
|
+
const offsetY = ((_d = (_c = marker.anchor) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0) * (marker.height || 0);
|
|
257
|
+
markerObj.setOffset(new BMapGL.Size(offsetX, offsetY));
|
|
258
|
+
}
|
|
259
|
+
// 创建title
|
|
260
|
+
if (!marker.callout && marker.title) {
|
|
261
|
+
const hammer = new Hammer__default['default'](this.mapRef); // 创建Hammer对象,绑定到地图容器
|
|
262
|
+
hammer.on('tap', (e) => {
|
|
263
|
+
// 使用tap事件替代click事件
|
|
264
|
+
const touch = e.center;
|
|
265
|
+
const x = touch.x;
|
|
266
|
+
const y = touch.y;
|
|
267
|
+
// 假设阈值为 10,表示点击距离小于 10 个像素时认为是点击到了标记点
|
|
268
|
+
const threshold = 15;
|
|
269
|
+
// 遍历标记点数组,计算触摸位置与每个标记点的距离
|
|
270
|
+
option.markers.forEach((marker) => {
|
|
271
|
+
// 通过class名获取地图容器
|
|
272
|
+
const mapContainer = document.getElementsByClassName('bmap-container')[0];
|
|
273
|
+
// 获取地图容器在屏幕上的偏移量
|
|
274
|
+
const mapContainerRect = mapContainer.getBoundingClientRect();
|
|
275
|
+
const mapOffsetX = mapContainerRect.left;
|
|
276
|
+
const mapOffsetY = mapContainerRect.top;
|
|
277
|
+
const point = new BMapGL.Point(marker.longitude, marker.latitude);
|
|
278
|
+
const pixel = this.map.pointToPixel(point);
|
|
279
|
+
const markerX = pixel.x + mapOffsetX;
|
|
280
|
+
const markerY = pixel.y + mapOffsetY;
|
|
281
|
+
// 计算触摸位置与标记点的距离
|
|
282
|
+
const distance = Math.sqrt(Math.pow(x - markerX, 2) + Math.pow(y - markerY, 2));
|
|
283
|
+
if (distance < threshold && marker.id === markerObj.id) {
|
|
284
|
+
// 最近的标记点距离小于阈值,表示用户点击到了标记点
|
|
285
|
+
const content = `<div style="text-align:center">${marker.title}</div>`;
|
|
286
|
+
const infoWindow = new BMapGL.InfoWindow(content);
|
|
287
|
+
this.map.openInfoWindow(infoWindow, pt);
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
if (marker.callout) {
|
|
293
|
+
const offsetX = ((_e = marker.callout) === null || _e === void 0 ? void 0 : _e.anchorX) ? (_f = marker.callout) === null || _f === void 0 ? void 0 : _f.anchorX : 0; // 横向偏移量
|
|
294
|
+
const offsetY = ((_g = marker.callout) === null || _g === void 0 ? void 0 : _g.anchorY) ? (_h = marker.callout) === null || _h === void 0 ? void 0 : _h.anchorY : 0; // 纵向偏移量
|
|
295
|
+
// 创建气泡(callout)对象
|
|
296
|
+
const callout = new BMapGL.InfoWindow(`<div style="
|
|
297
|
+
padding: ${(_j = marker.callout) === null || _j === void 0 ? void 0 : _j.padding}px;
|
|
298
|
+
color:${(_k = marker.callout) === null || _k === void 0 ? void 0 : _k.color};
|
|
299
|
+
text-align:${(_l = marker.callout) === null || _l === void 0 ? void 0 : _l.textAlign};"
|
|
300
|
+
>
|
|
301
|
+
<p style="font-size:${(_m = marker.callout) === null || _m === void 0 ? void 0 : _m.fontSize}px">${((_o = marker.callout) === null || _o === void 0 ? void 0 : _o.content) || ''}</p>
|
|
302
|
+
</div>`, {
|
|
303
|
+
width: 200,
|
|
304
|
+
height: 100,
|
|
305
|
+
offset: new BMapGL.Size(offsetX - 24, offsetY - 20), // 设置偏移量
|
|
306
|
+
});
|
|
307
|
+
// 自定义属性存储气泡(callout)对象
|
|
308
|
+
markerObj.callout = callout;
|
|
309
|
+
// 将气泡(callout)对象绑定到标记(marker)对象上
|
|
310
|
+
this.map.addOverlay(markerObj);
|
|
311
|
+
if (((_p = marker.callout) === null || _p === void 0 ? void 0 : _p.display) === 'ALWAYS') {
|
|
312
|
+
markerObj.callout.disableCloseOnClick();
|
|
313
|
+
const point = markerObj.getPosition(); // 获取marker标记点的位置
|
|
314
|
+
markerObj.callout.addEventListener('open', function () {
|
|
315
|
+
var _a, _b, _c, _d;
|
|
316
|
+
console.log(markerObj.callout);
|
|
317
|
+
const infoWindowElement = document.querySelector('.BMap_bubble_pop');
|
|
318
|
+
if (infoWindowElement) {
|
|
319
|
+
let triangle = infoWindowElement.querySelector('.triangle');
|
|
320
|
+
if (!triangle) {
|
|
321
|
+
// 如果不存在,则创建并添加新的三角形 div
|
|
322
|
+
triangle = document.createElement('div');
|
|
323
|
+
triangle.className = 'triangle'; // 添加一个类名以便日后查找
|
|
324
|
+
infoWindowElement.appendChild(triangle);
|
|
325
|
+
}
|
|
326
|
+
const img = document.querySelector('.BMap_bubble_pop>img');
|
|
327
|
+
if (img) {
|
|
328
|
+
img.setAttribute('style', `position: absolute;transform: translate(-50%, 0); top: ${point.lat - 100}px; left: ${point.lng - 20}px;display:none`);
|
|
329
|
+
}
|
|
330
|
+
const backgroundcolor = (_a = marker.callout) === null || _a === void 0 ? void 0 : _a.bgColor;
|
|
331
|
+
let borderWidth = ((_b = marker.callout) === null || _b === void 0 ? void 0 : _b.borderWidth) || 5;
|
|
332
|
+
const borderColor = (_c = marker.callout) === null || _c === void 0 ? void 0 : _c.borderColor;
|
|
333
|
+
const borderRadius = (_d = marker.callout) === null || _d === void 0 ? void 0 : _d.borderRadius;
|
|
334
|
+
// 确保边框大小不超过15
|
|
335
|
+
borderWidth = Math.min(borderWidth, 15);
|
|
336
|
+
triangle.setAttribute('style', `width:0;height:0;border-left:${borderWidth}px solid transparent;border-right:${borderWidth}px solid transparent;border-top:${borderWidth}px solid ${borderColor};position:absolute;left:83px;bottom:-${2 * borderWidth}px`);
|
|
337
|
+
infoWindowElement.setAttribute('style', `background-color:${backgroundcolor};top:${point.lat - 120}px; left:${point.lng - 100}px;position: absolute;border: ${borderWidth}px solid ${borderColor};border-radius:${borderRadius}px; `);
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
this.map.openInfoWindow(markerObj.callout, pt);
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
const hammer = new Hammer__default['default'](this.mapRef); // 创建Hammer对象,绑定到地图容器
|
|
344
|
+
hammer.on('tap', (e) => {
|
|
345
|
+
// 使用tap事件替代click事件
|
|
346
|
+
const touch = e.center;
|
|
347
|
+
const x = touch.x;
|
|
348
|
+
const y = touch.y;
|
|
349
|
+
// 假设阈值为 10,表示点击距离小于 10 个像素时认为是点击到了标记点
|
|
350
|
+
const threshold = 15;
|
|
351
|
+
// 遍历标记点数组,计算触摸位置与每个标记点的距离
|
|
352
|
+
option.markers.forEach((marker) => {
|
|
353
|
+
// 通过class名获取地图容器
|
|
354
|
+
const mapContainer = document.getElementsByClassName('bmap-container')[0];
|
|
355
|
+
// 获取地图容器在屏幕上的偏移量
|
|
356
|
+
const mapContainerRect = mapContainer.getBoundingClientRect();
|
|
357
|
+
const mapOffsetX = mapContainerRect.left;
|
|
358
|
+
const mapOffsetY = mapContainerRect.top;
|
|
359
|
+
const point = new BMapGL.Point(marker.longitude, marker.latitude);
|
|
360
|
+
const pixel = this.map.pointToPixel(point);
|
|
361
|
+
const markerX = pixel.x + mapOffsetX;
|
|
362
|
+
const markerY = pixel.y + mapOffsetY;
|
|
363
|
+
// 计算触摸位置与标记点的距离
|
|
364
|
+
const distance = Math.sqrt(Math.pow(x - markerX, 2) + Math.pow(y - markerY, 2));
|
|
365
|
+
if (distance < threshold && marker.id === markerObj.id) {
|
|
366
|
+
const point = markerObj.getPosition(); // 获取marker标记点的位置
|
|
367
|
+
markerObj.callout.addEventListener('open', function () {
|
|
368
|
+
var _a, _b, _c, _d;
|
|
369
|
+
console.log(markerObj.callout);
|
|
370
|
+
const infoWindowElement = document.querySelector('.BMap_bubble_pop');
|
|
371
|
+
if (infoWindowElement) {
|
|
372
|
+
let triangle = infoWindowElement.querySelector('.triangle');
|
|
373
|
+
if (!triangle) {
|
|
374
|
+
// 如果不存在,则创建并添加新的三角形 div
|
|
375
|
+
triangle = document.createElement('div');
|
|
376
|
+
triangle.className = 'triangle'; // 添加一个类名以便日后查找
|
|
377
|
+
infoWindowElement.appendChild(triangle);
|
|
378
|
+
}
|
|
379
|
+
const img = document.querySelector('.BMap_bubble_pop>img');
|
|
380
|
+
if (img) {
|
|
381
|
+
img.setAttribute('style', `position: absolute;transform: translate(-50%, 0); top: ${point.lat - 100}px; left: ${point.lng - 20}px;display:none`);
|
|
382
|
+
}
|
|
383
|
+
const backgroundcolor = (_a = marker.callout) === null || _a === void 0 ? void 0 : _a.bgColor;
|
|
384
|
+
let borderWidth = ((_b = marker.callout) === null || _b === void 0 ? void 0 : _b.borderWidth) || 5;
|
|
385
|
+
const borderColor = (_c = marker.callout) === null || _c === void 0 ? void 0 : _c.borderColor;
|
|
386
|
+
const borderRadius = (_d = marker.callout) === null || _d === void 0 ? void 0 : _d.borderRadius;
|
|
387
|
+
// 确保边框大小不超过15
|
|
388
|
+
borderWidth = Math.min(borderWidth, 15);
|
|
389
|
+
triangle.setAttribute('style', `width:0;height:0;border-left:${borderWidth}px solid transparent;border-right:${borderWidth}px solid transparent;border-top:${borderWidth}px solid ${borderColor};position:absolute;left:83px;bottom:-${2 * borderWidth}px`);
|
|
390
|
+
infoWindowElement.setAttribute('style', `background-color:${backgroundcolor};top:${point.lat - 120}px; left:${point.lng - 100}px;position: absolute;border: ${borderWidth}px solid ${borderColor};border-radius:${borderRadius}px; `);
|
|
391
|
+
}
|
|
392
|
+
});
|
|
393
|
+
// 最近的标记点距离小于阈值,表示用户点击到了标记点
|
|
394
|
+
this.map.openInfoWindow(markerObj.callout, pt);
|
|
395
|
+
}
|
|
396
|
+
else {
|
|
397
|
+
markerObj.callout.enableCloseOnClick();
|
|
398
|
+
// 用户点击到了地图上的其他位置,不是标记点
|
|
399
|
+
}
|
|
400
|
+
});
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
// 判断是否有label属性
|
|
405
|
+
if (marker.label) {
|
|
406
|
+
const labelContent = marker.label.content || '';
|
|
407
|
+
const labelOpts = {
|
|
408
|
+
position: pt,
|
|
409
|
+
offset: new BMapGL.Size(marker.label.anchorX || 0, marker.label.anchorY || 0),
|
|
410
|
+
};
|
|
411
|
+
const label = new BMapGL.Label(labelContent, labelOpts);
|
|
412
|
+
// 设置标签样式
|
|
413
|
+
label.setStyle({
|
|
414
|
+
color: marker.label.color,
|
|
415
|
+
fontSize: marker.label.fontSize + 'px',
|
|
416
|
+
borderWidth: marker.label.borderWidth + 'px',
|
|
417
|
+
borderColor: marker.label.borderColor,
|
|
418
|
+
borderRadius: marker.label.borderRadius + 'px',
|
|
419
|
+
background: marker.label.bgColor,
|
|
420
|
+
padding: marker.label.padding + 'px',
|
|
421
|
+
});
|
|
422
|
+
markerObj.setLabel(label);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
};
|
|
427
|
+
/* 移除 marker */
|
|
428
|
+
this._removeMarkers = (option) => {
|
|
429
|
+
// 获取所有覆盖物
|
|
430
|
+
const overlays = this.map.getOverlays();
|
|
431
|
+
let newTargetMarker = {};
|
|
432
|
+
option.markerIds.forEach((id) => {
|
|
433
|
+
// 查找指定 id 的 Marker 对象
|
|
434
|
+
const targetMarker = overlays.find((overlay) => overlay instanceof BMapGL.Marker && String(overlay.id) === id);
|
|
435
|
+
newTargetMarker = targetMarker;
|
|
436
|
+
this.map.removeOverlay(targetMarker);
|
|
437
|
+
});
|
|
438
|
+
return newTargetMarker;
|
|
439
|
+
};
|
|
440
|
+
/* 沿指定路径移动 marker,用于轨迹回放等场景。动画完成时触发回调事件,若动画进行中,对同一 marker 再次调用 moveAlong 方法,前一次的动画将被打断 */
|
|
441
|
+
this._moveAlong = (object) => {
|
|
442
|
+
const path = object.path;
|
|
443
|
+
const targetMarkerId = object.markerId;
|
|
444
|
+
const duration = object.duration;
|
|
445
|
+
const autoRotate = object.autoRotate;
|
|
446
|
+
const targetMarker = this.map.getOverlays().find((overlay) => overlay instanceof BMapGL.Marker && overlay.id === targetMarkerId);
|
|
447
|
+
const points = path.map((p) => new BMapGL.Point(p.longitude, p.latitude));
|
|
448
|
+
const obj = {
|
|
449
|
+
flagId: true,
|
|
450
|
+
flagCoordinate: true // 标记是否有有效经纬度
|
|
451
|
+
};
|
|
452
|
+
if (!targetMarker) {
|
|
453
|
+
console.error(`Marker "${targetMarkerId}" not found.`);
|
|
454
|
+
obj.flagId = false;
|
|
455
|
+
return obj;
|
|
456
|
+
}
|
|
457
|
+
for (let i = 0; i < points.length; i++) {
|
|
458
|
+
const point = points[i];
|
|
459
|
+
if (point.lat < -80 && point.lat >= -90) {
|
|
460
|
+
point.lat += 10;
|
|
461
|
+
}
|
|
462
|
+
if (point.lng < -180 || point.lng > 180 || point.lat < -90 || point.lat > 90 || isNaN(point.lng) || isNaN(point.lat)) {
|
|
463
|
+
obj.flagCoordinate = false;
|
|
464
|
+
return obj;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
if (obj.flagId && obj.flagCoordinate) {
|
|
468
|
+
const startTime = performance.now();
|
|
469
|
+
const animate = (timestamp) => {
|
|
470
|
+
const elapsedTime = timestamp - startTime;
|
|
471
|
+
const progress = Math.min(elapsedTime / duration, 1);
|
|
472
|
+
const currentPoint = this.getPointOnPath(points, progress);
|
|
473
|
+
targetMarker.setPosition(currentPoint);
|
|
474
|
+
if (autoRotate && progress < 1) {
|
|
475
|
+
const nextPoint = this.getPointOnPath(points, Math.min(progress + 0.01, 1)); // 获取前进一点的点
|
|
476
|
+
const rotation = this.calculateRotation(currentPoint, nextPoint);
|
|
477
|
+
targetMarker.setRotation(rotation);
|
|
478
|
+
}
|
|
479
|
+
if (progress < 1) {
|
|
480
|
+
requestAnimationFrame(animate);
|
|
481
|
+
}
|
|
482
|
+
else {
|
|
483
|
+
// 动画结束
|
|
484
|
+
targetMarker.setPosition(points[points.length - 1]); // 设置 marker 位置为路径的最后一个点
|
|
485
|
+
targetMarker.setRotation(0); // 恢复旋转角度为0
|
|
486
|
+
}
|
|
487
|
+
};
|
|
488
|
+
requestAnimationFrame(animate);
|
|
489
|
+
}
|
|
490
|
+
return obj;
|
|
491
|
+
};
|
|
492
|
+
this.getPointOnPath = (points, progress) => {
|
|
493
|
+
const totalLength = this.calculateTotalLength(points);
|
|
494
|
+
const targetLength = totalLength * progress;
|
|
495
|
+
let currentLength = 0;
|
|
496
|
+
for (let i = 0; i < points.length - 1; i++) {
|
|
497
|
+
const segmentLength = this.map.getDistance(points[i], points[i + 1]);
|
|
498
|
+
if (currentLength + segmentLength >= targetLength) {
|
|
499
|
+
const ratio = (targetLength - currentLength) / segmentLength;
|
|
500
|
+
const deltaX = points[i + 1].lng - points[i].lng;
|
|
501
|
+
const deltaY = points[i + 1].lat - points[i].lat;
|
|
502
|
+
const newLng = points[i].lng + deltaX * ratio;
|
|
503
|
+
const newLat = points[i].lat + deltaY * ratio;
|
|
504
|
+
return new BMapGL.Point(newLng, newLat);
|
|
505
|
+
}
|
|
506
|
+
currentLength += segmentLength;
|
|
507
|
+
}
|
|
508
|
+
// 如果进度超出路径长度,返回路径的最后一个点
|
|
509
|
+
return points[points.length - 1];
|
|
510
|
+
};
|
|
511
|
+
this.calculateTotalLength = (points) => {
|
|
512
|
+
let totalLength = 0;
|
|
513
|
+
for (let i = 0; i < points.length - 1; i++) {
|
|
514
|
+
totalLength += this.map.getDistance(points[i], points[i + 1]);
|
|
515
|
+
}
|
|
516
|
+
return totalLength;
|
|
517
|
+
};
|
|
518
|
+
this.calculateRotation = (currentPoint, nextPoint) => {
|
|
519
|
+
const dx = nextPoint.lng - currentPoint.lng;
|
|
520
|
+
const dy = nextPoint.lat - currentPoint.lat;
|
|
521
|
+
let angle = Math.atan2(dy, dx) * (180 / Math.PI);
|
|
522
|
+
angle = 90 - angle;
|
|
523
|
+
return angle;
|
|
524
|
+
};
|
|
525
|
+
/* 创建自定义图片图层,图片会随着地图缩放而缩放 */
|
|
526
|
+
this._addGroundOverlay = (option) => {
|
|
527
|
+
const { src, opacity, bounds, visible, id, zIndex } = option;
|
|
528
|
+
let flag = true;
|
|
529
|
+
if (bounds.southwest.longitude >= bounds.northeast.longitude || bounds.southwest.latitude >= bounds.northeast.latitude) {
|
|
530
|
+
flag = false;
|
|
531
|
+
return;
|
|
532
|
+
}
|
|
533
|
+
if (bounds.southwest.latitude > 90 || bounds.southwest.latitude < -90 || bounds.southwest.longitude > 180 || bounds.southwest.longitude < -180 || isNaN(bounds.southwest.latitude) || isNaN(bounds.southwest.longitude)) {
|
|
534
|
+
flag = false;
|
|
535
|
+
return;
|
|
536
|
+
}
|
|
537
|
+
if (bounds.northeast.latitude > 90 || bounds.northeast.latitude < -90 || bounds.northeast.longitude > 180 || bounds.northeast.longitude < -180 || isNaN(bounds.northeast.latitude) || isNaN(bounds.northeast.longitude)) {
|
|
538
|
+
flag = false;
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
541
|
+
// 创建覆盖物边界对象
|
|
542
|
+
const overlayBounds = new BMapGL.Bounds(new BMapGL.Point(bounds.southwest.longitude, bounds.southwest.latitude), new BMapGL.Point(bounds.northeast.longitude, bounds.northeast.latitude));
|
|
543
|
+
// 定义 GroundOverlay类
|
|
544
|
+
function GroundOverlay(bounds, imageUrl, map, visible, opacity, zIndex, id) {
|
|
545
|
+
this._bounds = bounds;
|
|
546
|
+
this._imageUrl = imageUrl;
|
|
547
|
+
this._map = map;
|
|
548
|
+
this._visible = visible;
|
|
549
|
+
this._opacity = opacity;
|
|
550
|
+
this._zIndex = zIndex;
|
|
551
|
+
this._id = id;
|
|
552
|
+
}
|
|
553
|
+
// 继承 BMapGL.Overlay
|
|
554
|
+
GroundOverlay.prototype = new BMapGL.Overlay();
|
|
555
|
+
// 初始化方法
|
|
556
|
+
GroundOverlay.prototype.initialize = function (map) {
|
|
557
|
+
// 移除已存在的元素
|
|
558
|
+
if (document.getElementById(this._id)) {
|
|
559
|
+
const element = document.getElementById(this._id);
|
|
560
|
+
element === null || element === void 0 ? void 0 : element.remove();
|
|
561
|
+
}
|
|
562
|
+
this._map = map;
|
|
563
|
+
if (!this._div) {
|
|
564
|
+
// 创建 div 元素并设置样式
|
|
565
|
+
const div = document.createElement('div');
|
|
566
|
+
div.id = this._id;
|
|
567
|
+
div.style.position = 'absolute';
|
|
568
|
+
div.style.border = 'none';
|
|
569
|
+
div.style.zIndex = this._zIndex;
|
|
570
|
+
// 创建 img 元素并设置样式
|
|
571
|
+
const img = document.createElement('img');
|
|
572
|
+
img.src = this._imageUrl;
|
|
573
|
+
// 确保opacity值在0到1之间
|
|
574
|
+
const validOpacity = (this._opacity < 0) ? '1' : this._opacity;
|
|
575
|
+
img.style.opacity = validOpacity;
|
|
576
|
+
div.appendChild(img);
|
|
577
|
+
this._div = div;
|
|
578
|
+
}
|
|
579
|
+
// 监听地图缩放事件,调整覆盖物尺寸
|
|
580
|
+
map.addEventListener('zoomend', () => {
|
|
581
|
+
const swPixel = map.pointToOverlayPixel(this._bounds.getSouthWest());
|
|
582
|
+
const nePixel = map.pointToOverlayPixel(this._bounds.getNorthEast());
|
|
583
|
+
const width = nePixel.x - swPixel.x;
|
|
584
|
+
const height = swPixel.y - nePixel.y;
|
|
585
|
+
this._div.style.width = width + 'px';
|
|
586
|
+
this._div.style.height = height + 'px';
|
|
587
|
+
const img = this._div.querySelector('img');
|
|
588
|
+
img.style.width = width + 'px';
|
|
589
|
+
img.style.height = height + 'px';
|
|
590
|
+
});
|
|
591
|
+
// 将 div 元素添加到地图覆盖物层
|
|
592
|
+
map.getPanes().labelPane.appendChild(this._div);
|
|
593
|
+
return this._div;
|
|
594
|
+
};
|
|
595
|
+
// 绘制方法
|
|
596
|
+
GroundOverlay.prototype.draw = function () {
|
|
597
|
+
// 设置 div 元素位置和尺寸
|
|
598
|
+
const _northeast = {
|
|
599
|
+
lat: option.bounds.northeast.latitude,
|
|
600
|
+
lng: option.bounds.southwest.longitude
|
|
601
|
+
};
|
|
602
|
+
const position = this._map.pointToOverlayPixel(_northeast);
|
|
603
|
+
this._div.style.left = position.x + 'px';
|
|
604
|
+
this._div.style.top = position.y + 'px';
|
|
605
|
+
const bounds = this._map.getBounds();
|
|
606
|
+
const sw = this._map.pointToPixel(bounds.getSouthWest());
|
|
607
|
+
const ne = this._map.pointToPixel(bounds.getNorthEast());
|
|
608
|
+
const width = ne.x - sw.x;
|
|
609
|
+
const height = ne.y - sw.y;
|
|
610
|
+
const zoom = this._map.getZoom();
|
|
611
|
+
const imageWidth = width * Math.pow(2, 18 - zoom);
|
|
612
|
+
const imageHeight = height * Math.pow(2, 18 - zoom);
|
|
613
|
+
this._div.style.width = imageWidth + 'px';
|
|
614
|
+
this._div.style.height = imageHeight + 'px';
|
|
615
|
+
this._div.style.display = this._visible ? 'block' : 'none';
|
|
616
|
+
const validOpacity = (this._opacity < 0) ? '1' : this._opacity;
|
|
617
|
+
this._div.getElementsByTagName('img')[0].style.opacity = validOpacity;
|
|
618
|
+
};
|
|
619
|
+
// 创建 GroundOverlay 实例
|
|
620
|
+
const overlay = new GroundOverlay(overlayBounds, src, this.map, visible, opacity, zIndex, id);
|
|
621
|
+
this.map.addOverlay(overlay);
|
|
622
|
+
// 对所有覆盖物进行排序
|
|
623
|
+
const overlays = this.map.getOverlays().sort((a, b) => a._zIndex - b._zIndex);
|
|
624
|
+
this.groundOverlay = overlay;
|
|
625
|
+
// 将所有覆盖物重新绘制
|
|
626
|
+
overlays.forEach((overlay) => overlay.draw());
|
|
627
|
+
const zoom = this.map.getZoom();
|
|
628
|
+
if (zoom < 20) {
|
|
629
|
+
this.map.setZoom(zoom + 1);
|
|
630
|
+
this.map.setZoom(zoom);
|
|
631
|
+
}
|
|
632
|
+
else {
|
|
633
|
+
this.map.setZoom(zoom - 1);
|
|
634
|
+
this.map.setZoom(zoom);
|
|
635
|
+
}
|
|
636
|
+
return flag;
|
|
637
|
+
};
|
|
638
|
+
/* 更新自定义图片图层 */
|
|
639
|
+
this._updateGroundOverlay = (option) => {
|
|
640
|
+
const { src, opacity, bounds, visible, id, zIndex } = option;
|
|
641
|
+
let obj;
|
|
642
|
+
let flagId = true; // 标记是否有id
|
|
643
|
+
let flagCoordinate = true; // 标记是否有有效经纬度
|
|
644
|
+
let flagObj = {};
|
|
645
|
+
// 获取所有图层
|
|
646
|
+
const overlays = this.map.getOverlays();
|
|
647
|
+
// 找到要更新的图层
|
|
648
|
+
const targetOverlay = overlays.find((overlay) => overlay._id === id);
|
|
649
|
+
if (!targetOverlay) {
|
|
650
|
+
flagId = false;
|
|
651
|
+
flagObj = {
|
|
652
|
+
flagId: flagId,
|
|
653
|
+
flagCoordinate: flagCoordinate
|
|
654
|
+
};
|
|
655
|
+
obj = Object.assign({}, flagObj);
|
|
656
|
+
return obj;
|
|
657
|
+
}
|
|
658
|
+
if (bounds.southwest.longitude >= bounds.northeast.longitude || bounds.southwest.latitude >= bounds.northeast.latitude) {
|
|
659
|
+
flagCoordinate = false;
|
|
660
|
+
flagObj = {
|
|
661
|
+
flagId: flagId,
|
|
662
|
+
flagCoordinate: flagCoordinate
|
|
663
|
+
};
|
|
664
|
+
obj = Object.assign({}, flagObj);
|
|
665
|
+
}
|
|
666
|
+
if (bounds.southwest.latitude > 90 || bounds.southwest.latitude < -90 || bounds.southwest.longitude > 180 || bounds.southwest.longitude < -180 || isNaN(bounds.southwest.latitude) || isNaN(bounds.southwest.longitude)) {
|
|
667
|
+
flagCoordinate = false;
|
|
668
|
+
flagObj = {
|
|
669
|
+
flagId: flagId,
|
|
670
|
+
flagCoordinate: flagCoordinate
|
|
671
|
+
};
|
|
672
|
+
obj = Object.assign({}, flagObj);
|
|
673
|
+
}
|
|
674
|
+
if (bounds.northeast.latitude > 90 || bounds.northeast.latitude < -90 || bounds.northeast.longitude > 180 || bounds.northeast.longitude < -180 || isNaN(bounds.northeast.latitude) || isNaN(bounds.northeast.longitude)) {
|
|
675
|
+
flagCoordinate = false;
|
|
676
|
+
flagObj = {
|
|
677
|
+
flagId: flagId,
|
|
678
|
+
flagCoordinate: flagCoordinate
|
|
679
|
+
};
|
|
680
|
+
obj = Object.assign({}, flagObj);
|
|
681
|
+
}
|
|
682
|
+
if (flagId && flagCoordinate) {
|
|
683
|
+
const targetBounds = new BMapGL.Bounds(new BMapGL.Point(bounds.southwest.longitude, bounds.southwest.latitude), new BMapGL.Point(bounds.northeast.longitude, bounds.northeast.latitude));
|
|
684
|
+
const zoom = this.map.getZoom();
|
|
685
|
+
if (targetOverlay) {
|
|
686
|
+
// 更新DOM元素
|
|
687
|
+
const element = document.getElementById(id);
|
|
688
|
+
if (element) {
|
|
689
|
+
const imgElement = element.querySelector('img');
|
|
690
|
+
if (imgElement) {
|
|
691
|
+
// 找到了对应的元素
|
|
692
|
+
const validOpacity = (opacity < 0) ? '1' : opacity;
|
|
693
|
+
element.style.opacity = validOpacity;
|
|
694
|
+
imgElement.style.display = visible ? 'block' : 'none';
|
|
695
|
+
element.style.zIndex = zIndex;
|
|
696
|
+
// 加载图片
|
|
697
|
+
const image = new Image();
|
|
698
|
+
image.onload = () => {
|
|
699
|
+
// 图片加载完成后执行
|
|
700
|
+
imgElement.src = src; // 设置图片的src
|
|
701
|
+
// 根据当前缩放级别设置图片宽高
|
|
702
|
+
const lngSpan = targetBounds.getNorthEast().lng - targetBounds.getSouthWest().lng;
|
|
703
|
+
const mapWidth = this.map.getSize().width; // 获取地图容器的宽度
|
|
704
|
+
const updatedImageWidth = (mapWidth / Math.pow(2, 18 - zoom)) * lngSpan;
|
|
705
|
+
const imageAspectRatio = image.naturalHeight / image.naturalWidth;
|
|
706
|
+
const updatedImageHeight = updatedImageWidth * imageAspectRatio;
|
|
707
|
+
imgElement.style.width = `${updatedImageWidth}px`;
|
|
708
|
+
imgElement.style.height = `${updatedImageHeight}px`;
|
|
709
|
+
// 重新绘制图层
|
|
710
|
+
targetOverlay._bounds = targetBounds;
|
|
711
|
+
targetOverlay.draw();
|
|
712
|
+
// 更新完图片后,立即重绘地图
|
|
713
|
+
this.map.panTo(this.map.getCenter());
|
|
714
|
+
targetOverlay.draw();
|
|
715
|
+
};
|
|
716
|
+
image.src = src;
|
|
717
|
+
}
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
else {
|
|
721
|
+
// 没有找到对应的元素
|
|
722
|
+
console.error(`未找到id为${id}的元素`);
|
|
723
|
+
}
|
|
724
|
+
flagObj = {
|
|
725
|
+
flagId: flagId,
|
|
726
|
+
flagCoordinate: flagCoordinate
|
|
727
|
+
};
|
|
728
|
+
obj = Object.assign({}, flagObj);
|
|
729
|
+
return obj;
|
|
730
|
+
}
|
|
731
|
+
else {
|
|
732
|
+
return obj;
|
|
733
|
+
}
|
|
734
|
+
};
|
|
735
|
+
/* 移除自定义图片图层 */
|
|
736
|
+
this._removeGroundOverlay = (option) => {
|
|
737
|
+
// 获取所有图层
|
|
738
|
+
const overlays = this.map.getOverlays();
|
|
739
|
+
let newTargetOverlay = '';
|
|
740
|
+
// 找到要更新的图层
|
|
741
|
+
const targetOverlay = overlays.find((overlay) => overlay._id === option.id);
|
|
742
|
+
newTargetOverlay = targetOverlay;
|
|
743
|
+
if (targetOverlay) {
|
|
744
|
+
// 如果找到了对应的图层,执行删除操作
|
|
745
|
+
this.map.removeOverlay(targetOverlay);
|
|
746
|
+
}
|
|
747
|
+
return newTargetOverlay;
|
|
748
|
+
};
|
|
749
|
+
/* 限制地图的显示范围。此接口同时会限制地图的最小缩放整数级别。 */
|
|
750
|
+
this._setBoundary = (option) => {
|
|
751
|
+
let nth = option.northeast.latitude;
|
|
752
|
+
let sth = option.southwest.latitude;
|
|
753
|
+
let flag = true;
|
|
754
|
+
if (option.northeast.latitude <= -80 && option.northeast.latitude >= -90) {
|
|
755
|
+
nth = option.northeast.latitude + 10;
|
|
756
|
+
}
|
|
757
|
+
if (option.southwest.latitude <= -80 && option.southwest.latitude >= -90) {
|
|
758
|
+
sth = option.southwest.latitude + 10;
|
|
759
|
+
}
|
|
760
|
+
if (option.northeast.latitude < -90 || option.northeast.latitude > 90 || option.northeast.longitude < -180 || option.northeast.longitude > 180 || isNaN(option.northeast.latitude) || isNaN(option.northeast.longitude) || option.northeast.longitude < option.southwest.longitude || option.northeast.latitude < option.southwest.latitude) {
|
|
761
|
+
flag = false;
|
|
762
|
+
return;
|
|
763
|
+
}
|
|
764
|
+
if (option.southwest.latitude < -90 || option.southwest.latitude > 90 || option.southwest.longitude < -180 || option.southwest.longitude > 180 || isNaN(option.southwest.latitude) || isNaN(option.southwest.longitude)) {
|
|
765
|
+
flag = false;
|
|
766
|
+
return;
|
|
767
|
+
}
|
|
768
|
+
const ne = new BMapGL.Point(option.northeast.longitude, nth);
|
|
769
|
+
const sw = new BMapGL.Point(option.southwest.longitude, sth);
|
|
770
|
+
const bounds = new BMapGL.Bounds(sw, ne);
|
|
771
|
+
const viewport = this.map.getViewport([ne, sw]);
|
|
772
|
+
this.map.centerAndZoom(new BMapGL.Point(viewport.center.lng, viewport.center.lat), viewport.zoom + 2);
|
|
773
|
+
this.map.addOverlay(new BMapGL.Polygon([
|
|
774
|
+
new BMapGL.Point(bounds.sw.lng, bounds.sw.lat),
|
|
775
|
+
new BMapGL.Point(bounds.sw.lng, bounds.ne.lat),
|
|
776
|
+
new BMapGL.Point(bounds.ne.lng, bounds.ne.lat),
|
|
777
|
+
new BMapGL.Point(bounds.ne.lng, bounds.sw.lat)
|
|
778
|
+
], {
|
|
779
|
+
fillOpacity: 0
|
|
780
|
+
}));
|
|
781
|
+
BMapGLLib.AreaRestriction.setBounds(this.map, bounds);
|
|
782
|
+
return flag;
|
|
783
|
+
};
|
|
784
|
+
this.latitude = undefined;
|
|
785
|
+
this.longitude = undefined;
|
|
786
|
+
this.scale = undefined;
|
|
787
|
+
this.minScale = undefined;
|
|
788
|
+
this.maxScale = undefined;
|
|
789
|
+
this.markers = undefined;
|
|
790
|
+
this.polyline = undefined;
|
|
791
|
+
this.circles = undefined;
|
|
792
|
+
this.polygons = undefined;
|
|
793
|
+
this.subkey = undefined;
|
|
794
|
+
this.layerStyle = undefined;
|
|
795
|
+
this.rotate = undefined;
|
|
796
|
+
this.skew = undefined;
|
|
797
|
+
this.showCompass = undefined;
|
|
798
|
+
this.showScale = undefined;
|
|
799
|
+
this.enableOverlooking = undefined;
|
|
800
|
+
this.enableZoom = undefined;
|
|
801
|
+
this.enableScroll = undefined;
|
|
802
|
+
this.enableRotate = undefined;
|
|
803
|
+
this.enableSatellite = undefined;
|
|
804
|
+
this.enableTraffic = undefined;
|
|
805
|
+
this.enableBuilding = undefined;
|
|
806
|
+
this.enableAutoMaxOverlooking = undefined;
|
|
807
|
+
this.enable3D = undefined;
|
|
808
|
+
this.width = '100%';
|
|
809
|
+
this.height = '100%';
|
|
810
|
+
}
|
|
811
|
+
async componentDidLoad() {
|
|
812
|
+
// 加载地图脚本
|
|
813
|
+
await this.loadMapScript();
|
|
814
|
+
// 记载BmapLib工具库
|
|
815
|
+
await this.LoadBmapLibScript();
|
|
816
|
+
// 如果容器元素存在
|
|
817
|
+
if (this.mapRef) {
|
|
818
|
+
this.mapRef.addEventListener('touchmove', (e) => {
|
|
819
|
+
if (e.cancelable) {
|
|
820
|
+
e.preventDefault();
|
|
821
|
+
}
|
|
822
|
+
});
|
|
823
|
+
// 创建地图对象
|
|
824
|
+
this.map = new BMapGL.Map(this.mapRef);
|
|
825
|
+
// 移除百度地图版权信息
|
|
826
|
+
this.map.removeControl(this.map.getMapType());
|
|
827
|
+
// 创建中心点坐标对象
|
|
828
|
+
// 中心经纬度为必填值
|
|
829
|
+
if (this.latitude < -90 || this.latitude > 90 || this.longitude < -180 || this.longitude > 180 || isNaN(this.latitude) || isNaN(this.longitude)) {
|
|
830
|
+
console.error('请正确设置中心经纬度');
|
|
831
|
+
return;
|
|
832
|
+
}
|
|
833
|
+
let scale = isNaN(this.scale) ? 16 : this.scale;
|
|
834
|
+
let minScale = isNaN(this.minScale) ? 3 : this.minScale;
|
|
835
|
+
let maxScale = isNaN(this.maxScale) ? 16 : this.maxScale;
|
|
836
|
+
const point = new BMapGL.Point(this.longitude, this.latitude);
|
|
837
|
+
if (minScale < 3 || minScale > 20) {
|
|
838
|
+
minScale = 3;
|
|
839
|
+
this.map.setMinZoom(3);
|
|
840
|
+
}
|
|
841
|
+
else {
|
|
842
|
+
// 设置最小缩放级别
|
|
843
|
+
this.map.setMinZoom(minScale);
|
|
844
|
+
}
|
|
845
|
+
if (maxScale > 20 || maxScale < 3) {
|
|
846
|
+
maxScale = 20;
|
|
847
|
+
this.map.setMaxZoom(20);
|
|
848
|
+
}
|
|
849
|
+
else {
|
|
850
|
+
// 设置最大缩放级别
|
|
851
|
+
this.map.setMaxZoom(maxScale);
|
|
852
|
+
}
|
|
853
|
+
if (minScale > maxScale) {
|
|
854
|
+
minScale = 3;
|
|
855
|
+
this.map.setMinZoom(3);
|
|
856
|
+
maxScale = 20;
|
|
857
|
+
this.map.setMaxZoom(20);
|
|
858
|
+
}
|
|
859
|
+
// 设置地图中心和缩放级别
|
|
860
|
+
if (minScale <= 16 && maxScale >= 16) {
|
|
861
|
+
if (scale >= minScale && scale <= maxScale) {
|
|
862
|
+
// 使用this.scale来设置缩放级别
|
|
863
|
+
this.map.centerAndZoom(point, scale);
|
|
864
|
+
}
|
|
865
|
+
else {
|
|
866
|
+
scale = 16;
|
|
867
|
+
this.map.centerAndZoom(point, scale);
|
|
868
|
+
}
|
|
869
|
+
}
|
|
870
|
+
else {
|
|
871
|
+
if (scale >= minScale && scale <= maxScale) {
|
|
872
|
+
// 使用this.scale来设置缩放级别
|
|
873
|
+
this.map.centerAndZoom(point, scale);
|
|
874
|
+
}
|
|
875
|
+
else if (scale < minScale) {
|
|
876
|
+
scale = minScale;
|
|
877
|
+
this.map.centerAndZoom(point, minScale);
|
|
878
|
+
}
|
|
879
|
+
else {
|
|
880
|
+
scale = maxScale;
|
|
881
|
+
this.map.centerAndZoom(point, maxScale);
|
|
882
|
+
}
|
|
883
|
+
}
|
|
884
|
+
// 添加标记点markers
|
|
885
|
+
if (Array.isArray(this.markers)) {
|
|
886
|
+
this.addMarkers(this.markers);
|
|
887
|
+
}
|
|
888
|
+
// 创建polyline路线
|
|
889
|
+
if (Array.isArray(this.polyline)) {
|
|
890
|
+
this.polyline.forEach((line) => {
|
|
891
|
+
if (line.points) {
|
|
892
|
+
const points = line.points.map((point) => new BMapGL.Point(point.longitude, point.latitude));
|
|
893
|
+
const polyline = new BMapGL.Polyline(points, {
|
|
894
|
+
strokeColor: line.color,
|
|
895
|
+
strokeWeight: line.width,
|
|
896
|
+
strokeStyle: line.dottedLine ? 'dashed' : 'solid',
|
|
897
|
+
strokeOpacity: 1,
|
|
898
|
+
});
|
|
899
|
+
// 将polyline路线添加到地图上
|
|
900
|
+
this.map.addOverlay(polyline);
|
|
901
|
+
}
|
|
902
|
+
});
|
|
903
|
+
}
|
|
904
|
+
// 添加圆形覆盖物circles
|
|
905
|
+
if (Array.isArray(this.circles)) {
|
|
906
|
+
this.circles.forEach((circle) => {
|
|
907
|
+
if (circle.latitude && circle.longitude && circle.radius) {
|
|
908
|
+
const point = new BMapGL.Point(circle.longitude, circle.latitude);
|
|
909
|
+
const circleObj = new BMapGL.Circle(point, circle.radius, {
|
|
910
|
+
strokeColor: circle.color,
|
|
911
|
+
fillColor: circle.fillColor,
|
|
912
|
+
strokeWeight: circle.strokeWidth,
|
|
913
|
+
});
|
|
914
|
+
this.map.addOverlay(circleObj);
|
|
915
|
+
}
|
|
916
|
+
});
|
|
917
|
+
}
|
|
918
|
+
// 多边形
|
|
919
|
+
if (Array.isArray(this.polygons)) {
|
|
920
|
+
this.polygons.forEach((polygon) => {
|
|
921
|
+
// 创建多边形的点坐标数组
|
|
922
|
+
const points = polygon.points.map((point) => new BMapGL.Point(point.longitude, point.latitude));
|
|
923
|
+
// 创建多边形对象
|
|
924
|
+
const polygonObj = new BMapGL.Polygon(points, {
|
|
925
|
+
strokeColor: polygon.strokeColor,
|
|
926
|
+
fillColor: polygon.fillColor,
|
|
927
|
+
strokeWeight: polygon.strokeWidth,
|
|
928
|
+
});
|
|
929
|
+
// 将多边形添加到地图上
|
|
930
|
+
this.map.addOverlay(polygonObj);
|
|
931
|
+
});
|
|
932
|
+
}
|
|
933
|
+
if (this.layerStyle === 0) {
|
|
934
|
+
const layerStyle = this.layerStyle;
|
|
935
|
+
if (layerStyle) {
|
|
936
|
+
// 使用个性化地图样式
|
|
937
|
+
this.map.setMapStyleV2({ styleId: this.subkey });
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
else {
|
|
941
|
+
const layerStyle = this.layerStyle ? this.layerStyle : 1;
|
|
942
|
+
if (layerStyle === 1) {
|
|
943
|
+
// 使用个性化地图样式
|
|
944
|
+
this.map.setMapStyleV2({ styleId: this.subkey });
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
const enable3D = this.enable3D === true ? this.enable3D : false;
|
|
948
|
+
const enableOverlooking = this.enableOverlooking === true ? this.enableOverlooking : false;
|
|
949
|
+
const enableAutoMaxOverlooking = this.enableAutoMaxOverlooking === true ? this.enableAutoMaxOverlooking : false;
|
|
950
|
+
const skew = this.skew ? this.skew : 0;
|
|
951
|
+
if (enable3D === true) {
|
|
952
|
+
if (enableOverlooking === true) {
|
|
953
|
+
// /开启最大俯视角
|
|
954
|
+
if (enableAutoMaxOverlooking === true) {
|
|
955
|
+
this.map.setTilt(75);
|
|
956
|
+
}
|
|
957
|
+
else {
|
|
958
|
+
// 开启俯视角度
|
|
959
|
+
this.map.setTilt(45);
|
|
960
|
+
}
|
|
961
|
+
}
|
|
962
|
+
else if (skew >= 0 && skew <= 40) {
|
|
963
|
+
// 设置倾斜角度
|
|
964
|
+
this.map.setTilt(skew);
|
|
965
|
+
}
|
|
966
|
+
else {
|
|
967
|
+
this.map.setTilt(0);
|
|
968
|
+
}
|
|
969
|
+
}
|
|
970
|
+
else {
|
|
971
|
+
this.map.setTilt(0);
|
|
972
|
+
}
|
|
973
|
+
// 显示指南针
|
|
974
|
+
const showCompass = this.showCompass === true ? this.showCompass : false;
|
|
975
|
+
if (showCompass === true) {
|
|
976
|
+
const compassControl = new BMapGL.NavigationControl3D({
|
|
977
|
+
anchor: BMAP_ANCHOR_TOP_RIGHT,
|
|
978
|
+
type: 3, // 3代表显示指南针
|
|
979
|
+
});
|
|
980
|
+
this.map.addControl(compassControl);
|
|
981
|
+
}
|
|
982
|
+
// 显示比例尺
|
|
983
|
+
const showScale = this.showScale === true ? this.showScale : false;
|
|
984
|
+
if (showScale === true) {
|
|
985
|
+
const scaleControl = new BMapGL.ScaleControl({
|
|
986
|
+
anchor: BMAP_ANCHOR_BOTTOM_RIGHT,
|
|
987
|
+
});
|
|
988
|
+
this.map.addControl(scaleControl);
|
|
989
|
+
}
|
|
990
|
+
const enableZoom = this.enableZoom === false ? this.enableZoom : true;
|
|
991
|
+
if (enableZoom === true) {
|
|
992
|
+
// 启用缩放
|
|
993
|
+
this.map.enableScrollWheelZoom(this.enableZoom);
|
|
994
|
+
}
|
|
995
|
+
// 启用缩放
|
|
996
|
+
if (this.enableZoom === true && this.mapRef) {
|
|
997
|
+
this.map.enablePinchToZoom();
|
|
998
|
+
}
|
|
999
|
+
else {
|
|
1000
|
+
this.map.disablePinchToZoom();
|
|
1001
|
+
}
|
|
1002
|
+
// 拖拽
|
|
1003
|
+
const enableScroll = this.enableScroll === false ? this.enableScroll : true;
|
|
1004
|
+
if (enableScroll === true) {
|
|
1005
|
+
this.map.enableDragging();
|
|
1006
|
+
}
|
|
1007
|
+
else {
|
|
1008
|
+
this.map.disableDragging();
|
|
1009
|
+
}
|
|
1010
|
+
const rotate = this.rotate ? this.rotate : 0;
|
|
1011
|
+
if (rotate >= 0 && this.rotate <= 360) {
|
|
1012
|
+
this.map.setHeading(this.rotate);
|
|
1013
|
+
}
|
|
1014
|
+
else {
|
|
1015
|
+
this.map.setHeading(0);
|
|
1016
|
+
}
|
|
1017
|
+
// 设置旋转角度
|
|
1018
|
+
if (this.enableRotate === true) {
|
|
1019
|
+
this.map.enableRotateGestures();
|
|
1020
|
+
}
|
|
1021
|
+
// 启用卫星图
|
|
1022
|
+
const enableSatellite = this.enableSatellite === true ? this.enableSatellite : false;
|
|
1023
|
+
if (enableSatellite === true && this.mapRef) {
|
|
1024
|
+
const mapTypeControl = new BMapGL.MapTypeControl({
|
|
1025
|
+
mapTypes: [BMAP_NORMAL_MAP, BMAP_SATELLITE_MAP],
|
|
1026
|
+
});
|
|
1027
|
+
this.map.addControl(mapTypeControl);
|
|
1028
|
+
}
|
|
1029
|
+
const enableTraffic = this.enableTraffic === true ? this.enableTraffic : false;
|
|
1030
|
+
if (enableTraffic === true && this.mapRef) {
|
|
1031
|
+
this.map.setTrafficOn();
|
|
1032
|
+
}
|
|
1033
|
+
// 是否开启建筑物
|
|
1034
|
+
const enableBuilding = this.enableBuilding === false ? this.enableBuilding : true;
|
|
1035
|
+
if (enableBuilding === false) {
|
|
1036
|
+
this.map.setDisplayOptions({ building: false });
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
if (this.map) {
|
|
1040
|
+
// 创建Hammer对象,绑定到地图容器
|
|
1041
|
+
const hammer = new Hammer__default['default'](this.mapRef);
|
|
1042
|
+
hammer.on('tap', (e) => {
|
|
1043
|
+
// 将Hammer事件对象中的坐标转换为百度地图坐标
|
|
1044
|
+
const point = this.map.pixelToPoint({ x: e.center.x, y: e.center.y });
|
|
1045
|
+
this.onTap.emit({
|
|
1046
|
+
longitude: point.lng,
|
|
1047
|
+
latitude: point.lat,
|
|
1048
|
+
});
|
|
1049
|
+
});
|
|
1050
|
+
}
|
|
1051
|
+
}
|
|
1052
|
+
disconnectedCallback() {
|
|
1053
|
+
if (this.map) {
|
|
1054
|
+
this.map.destroy();
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
1057
|
+
addMarkers(markers) {
|
|
1058
|
+
// 维护已存在的marker id 列表
|
|
1059
|
+
const existingIds = [];
|
|
1060
|
+
markers.forEach((marker) => {
|
|
1061
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
1062
|
+
if (existingIds.includes(marker.id)) {
|
|
1063
|
+
// 如果id已存在,直接返回,不执行后续操作
|
|
1064
|
+
console.error('请输入不同的marker的id');
|
|
1065
|
+
return;
|
|
1066
|
+
}
|
|
1067
|
+
existingIds.push(marker.id);
|
|
1068
|
+
if (marker.latitude && marker.longitude && marker.iconPath && marker.id) {
|
|
1069
|
+
if (marker.latitude < -90 || marker.latitude > 90 || marker.longitude < -180 || marker.longitude > 180) {
|
|
1070
|
+
console.error('请正确设置marker的经纬度');
|
|
1071
|
+
return;
|
|
1072
|
+
}
|
|
1073
|
+
const pt = new BMapGL.Point(marker.longitude, marker.latitude);
|
|
1074
|
+
const markerObj = new BMapGL.Marker(pt, { enableClicking: true });
|
|
1075
|
+
markerObj.id = marker.id; // 设置标记点的唯一标识符
|
|
1076
|
+
markerObj.alpha = marker.alpha;
|
|
1077
|
+
if (marker.zIndex) {
|
|
1078
|
+
markerObj.setZIndex(marker.zIndex);
|
|
1079
|
+
}
|
|
1080
|
+
if (marker.width && marker.height) {
|
|
1081
|
+
const canvas = document.createElement('canvas');
|
|
1082
|
+
canvas.width = marker.width * 2;
|
|
1083
|
+
canvas.height = marker.height * 2;
|
|
1084
|
+
// 获取 Canvas 上下文
|
|
1085
|
+
const ctx = canvas.getContext('2d');
|
|
1086
|
+
// 创建一个新的图片对象
|
|
1087
|
+
const img = new Image();
|
|
1088
|
+
// 设置图片的跨域属性
|
|
1089
|
+
img.crossOrigin = 'Anonymous';
|
|
1090
|
+
img.src = marker.iconPath;
|
|
1091
|
+
// 当图片加载完成后,将其绘制到Canvas上
|
|
1092
|
+
img.onload = function () {
|
|
1093
|
+
ctx.drawImage(img, 0, 0, marker.width * 2, marker.height * 2);
|
|
1094
|
+
// 创建 BMapGL.Icon 对象,并将 Canvas 元素作为图标的内容
|
|
1095
|
+
// 设置锚点偏移量为(0, 0),表示图标的左上角将与经纬度对齐
|
|
1096
|
+
const icon = new BMapGL.Icon(canvas.toDataURL(), new BMapGL.Size(marker.width, marker.height), {
|
|
1097
|
+
anchor: new BMapGL.Size(0, 0)
|
|
1098
|
+
});
|
|
1099
|
+
markerObj.setIcon(icon);
|
|
1100
|
+
};
|
|
1101
|
+
}
|
|
1102
|
+
else {
|
|
1103
|
+
const img = new Image();
|
|
1104
|
+
img.src = marker.iconPath;
|
|
1105
|
+
img.style.opacity = String(marker.alpha);
|
|
1106
|
+
img.onload = () => {
|
|
1107
|
+
const iconSize = new BMapGL.Size(img.width, img.height);
|
|
1108
|
+
const icon = new BMapGL.Icon(img.src, iconSize);
|
|
1109
|
+
icon.imageOffset = new BMapGL.Size(0, 0, marker.alpha || 1);
|
|
1110
|
+
markerObj.setIcon(icon);
|
|
1111
|
+
};
|
|
1112
|
+
}
|
|
1113
|
+
const rotate = marker.rotate ? marker.rotate : 0;
|
|
1114
|
+
if (rotate >= 0 && rotate <= 360) {
|
|
1115
|
+
markerObj.setRotation(rotate);
|
|
1116
|
+
}
|
|
1117
|
+
// 如果anchor.x和anchor.y被定义,则使用它们的值,否则使用默认值
|
|
1118
|
+
const anchorX = (_b = (_a = marker.anchor) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : 0.5;
|
|
1119
|
+
const anchorY = (_d = (_c = marker.anchor) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 1;
|
|
1120
|
+
if (anchorX >= 0 && anchorX <= 1 && anchorY >= 0 && anchorY <= 1) {
|
|
1121
|
+
// 锚点设置为图标宽度的负值乘以x,以向左移动
|
|
1122
|
+
const offsetX = -(anchorX) * (marker.width || 0);
|
|
1123
|
+
// 锚点设置为图标高度的负值乘以y,以向上移动
|
|
1124
|
+
const offsetY = -(anchorY) * (marker.height || 0);
|
|
1125
|
+
// 使用计算出的偏移量设置标注对象的偏移
|
|
1126
|
+
markerObj.setOffset(new BMapGL.Size(offsetX, offsetY));
|
|
1127
|
+
}
|
|
1128
|
+
else {
|
|
1129
|
+
const offsetX = -0.5 * (marker.width || 0);
|
|
1130
|
+
const offsetY = -1 * (marker.height || 0);
|
|
1131
|
+
markerObj.setOffset(new BMapGL.Size(offsetX, offsetY));
|
|
1132
|
+
}
|
|
1133
|
+
// 创建title
|
|
1134
|
+
if (!marker.callout && marker.title) {
|
|
1135
|
+
const hammer = new Hammer__default['default'](this.mapRef); // 创建Hammer对象,绑定到地图容器
|
|
1136
|
+
hammer.on('tap', (e) => {
|
|
1137
|
+
// 使用tap事件替代click事件
|
|
1138
|
+
const touch = e.center;
|
|
1139
|
+
const x = touch.x;
|
|
1140
|
+
const y = touch.y;
|
|
1141
|
+
// 假设阈值为 10,表示点击距离小于 10 个像素时认为是点击到了标记点
|
|
1142
|
+
const threshold = 15;
|
|
1143
|
+
// 遍历标记点数组,计算触摸位置与每个标记点的距离
|
|
1144
|
+
this.markers.forEach((marker) => {
|
|
1145
|
+
// 通过class名获取地图容器
|
|
1146
|
+
const mapContainer = document.getElementsByClassName('bmap-container')[0];
|
|
1147
|
+
// 获取地图容器在屏幕上的偏移量
|
|
1148
|
+
const mapContainerRect = mapContainer.getBoundingClientRect();
|
|
1149
|
+
const mapOffsetX = mapContainerRect.left;
|
|
1150
|
+
const mapOffsetY = mapContainerRect.top;
|
|
1151
|
+
const point = new BMapGL.Point(marker.longitude, marker.latitude);
|
|
1152
|
+
const pixel = this.map.pointToPixel(point);
|
|
1153
|
+
const markerX = pixel.x + mapOffsetX;
|
|
1154
|
+
const markerY = pixel.y + mapOffsetY;
|
|
1155
|
+
// 计算触摸位置与标记点的距离
|
|
1156
|
+
const distance = Math.sqrt(Math.pow(x - markerX, 2) + Math.pow(y - markerY, 2));
|
|
1157
|
+
if (distance < threshold && marker.id === markerObj.id) {
|
|
1158
|
+
// 最近的标记点距离小于阈值,表示用户点击到了标记点
|
|
1159
|
+
const content = `<div style="text-align:center">${marker.title}</div>`;
|
|
1160
|
+
const infoWindow = new BMapGL.InfoWindow(content);
|
|
1161
|
+
this.map.openInfoWindow(infoWindow, pt);
|
|
1162
|
+
}
|
|
1163
|
+
});
|
|
1164
|
+
});
|
|
1165
|
+
}
|
|
1166
|
+
if (marker.callout) {
|
|
1167
|
+
const offsetX = ((_e = marker.callout) === null || _e === void 0 ? void 0 : _e.anchorX) ? (_f = marker.callout) === null || _f === void 0 ? void 0 : _f.anchorX : 0; // 横向偏移量
|
|
1168
|
+
const offsetY = ((_g = marker.callout) === null || _g === void 0 ? void 0 : _g.anchorY) ? (_h = marker.callout) === null || _h === void 0 ? void 0 : _h.anchorY : 0; // 纵向偏移量
|
|
1169
|
+
// 创建气泡(callout)对象
|
|
1170
|
+
const callout = new BMapGL.InfoWindow(`<div style="
|
|
1171
|
+
padding: ${(_j = marker.callout) === null || _j === void 0 ? void 0 : _j.padding}px;
|
|
1172
|
+
color:${(_k = marker.callout) === null || _k === void 0 ? void 0 : _k.color};
|
|
1173
|
+
text-align:${(_l = marker.callout) === null || _l === void 0 ? void 0 : _l.textAlign};"
|
|
1174
|
+
>
|
|
1175
|
+
<p style="font-size:${(_m = marker.callout) === null || _m === void 0 ? void 0 : _m.fontSize}px">${((_o = marker.callout) === null || _o === void 0 ? void 0 : _o.content) || ''}</p>
|
|
1176
|
+
</div>`, {
|
|
1177
|
+
width: 200,
|
|
1178
|
+
height: 100,
|
|
1179
|
+
offset: new BMapGL.Size(offsetX - 24, offsetY - 20), // 设置偏移量
|
|
1180
|
+
});
|
|
1181
|
+
// 自定义属性存储气泡(callout)对象
|
|
1182
|
+
markerObj.callout = callout;
|
|
1183
|
+
// 将气泡(callout)对象绑定到标记(marker)对象上
|
|
1184
|
+
this.map.addOverlay(markerObj);
|
|
1185
|
+
if (((_p = marker.callout) === null || _p === void 0 ? void 0 : _p.display) === 'ALWAYS') {
|
|
1186
|
+
markerObj.callout.disableCloseOnClick();
|
|
1187
|
+
const point = markerObj.getPosition(); // 获取marker标记点的位置
|
|
1188
|
+
markerObj.callout.addEventListener('open', function () {
|
|
1189
|
+
var _a, _b, _c, _d;
|
|
1190
|
+
const infoWindowElement = document.querySelector('.BMap_bubble_pop');
|
|
1191
|
+
if (infoWindowElement) {
|
|
1192
|
+
let triangle = infoWindowElement.querySelector('.triangle');
|
|
1193
|
+
if (!triangle) {
|
|
1194
|
+
// 如果不存在,则创建并添加新的三角形 div
|
|
1195
|
+
triangle = document.createElement('div');
|
|
1196
|
+
triangle.className = 'triangle'; // 添加一个类名以便日后查找
|
|
1197
|
+
infoWindowElement.appendChild(triangle);
|
|
1198
|
+
}
|
|
1199
|
+
const img = document.querySelector('.BMap_bubble_pop>img');
|
|
1200
|
+
if (img) {
|
|
1201
|
+
img.setAttribute('style', `position: absolute;transform: translate(-50%, 0); top: ${point.lat - 100}px; left: ${point.lng - 20}px;display:none`);
|
|
1202
|
+
}
|
|
1203
|
+
const backgroundcolor = (_a = marker.callout) === null || _a === void 0 ? void 0 : _a.bgColor;
|
|
1204
|
+
let borderWidth = ((_b = marker.callout) === null || _b === void 0 ? void 0 : _b.borderWidth) || 5;
|
|
1205
|
+
const borderColor = (_c = marker.callout) === null || _c === void 0 ? void 0 : _c.borderColor;
|
|
1206
|
+
const borderRadius = (_d = marker.callout) === null || _d === void 0 ? void 0 : _d.borderRadius;
|
|
1207
|
+
// 确保边框大小不超过15
|
|
1208
|
+
borderWidth = Math.min(borderWidth, 15);
|
|
1209
|
+
triangle.setAttribute('style', `width:0;height:0;borderLeft:${borderWidth}px solid transparent;borderRight:${borderWidth}px solid transparent;borderTop:${borderWidth}px solid ${borderColor};position:absolute;left:83px;bottom:-${2 * borderWidth}px`);
|
|
1210
|
+
infoWindowElement.setAttribute('style', `background-color:${backgroundcolor};top:${point.lat - 120}px; left:${point.lng - 100}px;position: absolute;border: ${borderWidth}px solid ${borderColor};border-radius:${borderRadius}px; `);
|
|
1211
|
+
}
|
|
1212
|
+
});
|
|
1213
|
+
this.map.openInfoWindow(markerObj.callout, pt);
|
|
1214
|
+
}
|
|
1215
|
+
else {
|
|
1216
|
+
const hammer = new Hammer__default['default'](this.mapRef); // 创建Hammer对象,绑定到地图容器
|
|
1217
|
+
hammer.on('tap', (e) => {
|
|
1218
|
+
// 使用tap事件替代click事件
|
|
1219
|
+
const touch = e.center;
|
|
1220
|
+
const x = touch.x;
|
|
1221
|
+
const y = touch.y;
|
|
1222
|
+
// 假设阈值为 10,表示点击距离小于 10 个像素时认为是点击到了标记点
|
|
1223
|
+
const threshold = 15;
|
|
1224
|
+
// 遍历标记点数组,计算触摸位置与每个标记点的距离
|
|
1225
|
+
this.markers.forEach((marker) => {
|
|
1226
|
+
// 通过class名获取地图容器
|
|
1227
|
+
const mapContainer = document.getElementsByClassName('bmap-container')[0];
|
|
1228
|
+
// 获取地图容器在屏幕上的偏移量
|
|
1229
|
+
const mapContainerRect = mapContainer.getBoundingClientRect();
|
|
1230
|
+
const mapOffsetX = mapContainerRect.left;
|
|
1231
|
+
const mapOffsetY = mapContainerRect.top;
|
|
1232
|
+
const point = new BMapGL.Point(marker.longitude, marker.latitude);
|
|
1233
|
+
const pixel = this.map.pointToPixel(point);
|
|
1234
|
+
const markerX = pixel.x + mapOffsetX;
|
|
1235
|
+
const markerY = pixel.y + mapOffsetY;
|
|
1236
|
+
// 计算触摸位置与标记点的距离
|
|
1237
|
+
const distance = Math.sqrt(Math.pow(x - markerX, 2) + Math.pow(y - markerY, 2));
|
|
1238
|
+
if (distance < threshold && marker.id === markerObj.id) {
|
|
1239
|
+
const point = markerObj.getPosition(); // 获取marker标记点的位置
|
|
1240
|
+
markerObj.callout.addEventListener('open', function () {
|
|
1241
|
+
var _a, _b, _c, _d;
|
|
1242
|
+
const infoWindowElement = document.querySelector('.BMap_bubble_pop');
|
|
1243
|
+
if (infoWindowElement) {
|
|
1244
|
+
let triangle = infoWindowElement.querySelector('.triangle');
|
|
1245
|
+
if (!triangle) {
|
|
1246
|
+
// 如果不存在,则创建并添加新的三角形 div
|
|
1247
|
+
triangle = document.createElement('div');
|
|
1248
|
+
triangle.className = 'triangle'; // 添加一个类名以便日后查找
|
|
1249
|
+
infoWindowElement.appendChild(triangle);
|
|
1250
|
+
}
|
|
1251
|
+
const img = document.querySelector('.BMap_bubble_pop>img');
|
|
1252
|
+
if (img) {
|
|
1253
|
+
img.setAttribute('style', `position: absolute;transform: translate(-50%, 0); top: ${point.lat - 100}px; left: ${point.lng - 20}px;display:none`);
|
|
1254
|
+
}
|
|
1255
|
+
const backgroundcolor = (_a = marker.callout) === null || _a === void 0 ? void 0 : _a.bgColor;
|
|
1256
|
+
let borderWidth = ((_b = marker.callout) === null || _b === void 0 ? void 0 : _b.borderWidth) || 5;
|
|
1257
|
+
const borderColor = (_c = marker.callout) === null || _c === void 0 ? void 0 : _c.borderColor;
|
|
1258
|
+
const borderRadius = (_d = marker.callout) === null || _d === void 0 ? void 0 : _d.borderRadius;
|
|
1259
|
+
// 确保边框大小不超过15
|
|
1260
|
+
borderWidth = Math.min(borderWidth, 15);
|
|
1261
|
+
triangle.setAttribute('style', `width:0;height:0;border-left:${borderWidth}px solid transparent;border-right:${borderWidth}px solid transparent;border-top:${borderWidth}px solid ${borderColor};position:absolute;left:83px;bottom:-${2 * borderWidth}px`);
|
|
1262
|
+
infoWindowElement.setAttribute('style', `background-color:${backgroundcolor};top:${point.lat - 120}px; left:${point.lng - 100}px;position: absolute;border: ${borderWidth}px solid ${borderColor};border-radius:${borderRadius}px; `);
|
|
1263
|
+
}
|
|
1264
|
+
});
|
|
1265
|
+
// 最近的标记点距离小于阈值,表示用户点击到了标记点
|
|
1266
|
+
this.map.openInfoWindow(markerObj.callout, pt);
|
|
1267
|
+
}
|
|
1268
|
+
else {
|
|
1269
|
+
markerObj.callout.enableCloseOnClick();
|
|
1270
|
+
// 用户点击到了地图上的其他位置,不是标记点
|
|
1271
|
+
}
|
|
1272
|
+
});
|
|
1273
|
+
});
|
|
1274
|
+
}
|
|
1275
|
+
}
|
|
1276
|
+
// 判断是否有label属性
|
|
1277
|
+
if (marker.label) {
|
|
1278
|
+
const labelContent = marker.label.content || '';
|
|
1279
|
+
const labelOpts = {
|
|
1280
|
+
position: pt,
|
|
1281
|
+
offset: new BMapGL.Size(marker.label.anchorX || 0, marker.label.anchorY || 0),
|
|
1282
|
+
};
|
|
1283
|
+
const label = new BMapGL.Label(labelContent, labelOpts);
|
|
1284
|
+
const borderColor = marker.label.borderColor ? marker.label.borderColor : 'white';
|
|
1285
|
+
// 设置标签样式
|
|
1286
|
+
label.setStyle({
|
|
1287
|
+
color: marker.label.color,
|
|
1288
|
+
fontSize: marker.label.fontSize + 'px',
|
|
1289
|
+
borderWidth: marker.label.borderWidth + 'px',
|
|
1290
|
+
borderColor: borderColor,
|
|
1291
|
+
borderRadius: marker.label.borderRadius + 'px',
|
|
1292
|
+
background: marker.label.bgColor,
|
|
1293
|
+
padding: marker.label.padding + 'px',
|
|
1294
|
+
});
|
|
1295
|
+
markerObj.setLabel(label);
|
|
1296
|
+
}
|
|
1297
|
+
this.map.addOverlay(markerObj);
|
|
1298
|
+
}
|
|
1299
|
+
else {
|
|
1300
|
+
console.error('请检查marker经纬度和marker自定义图标路径和id值');
|
|
1301
|
+
}
|
|
1302
|
+
});
|
|
1303
|
+
}
|
|
1304
|
+
loadMapScript() {
|
|
1305
|
+
return new Promise((resolve, reject) => {
|
|
1306
|
+
const script = document.createElement('script');
|
|
1307
|
+
script.src = 'https://api.map.baidu.com/getscript?v=3.0&type=webgl&ak=Mb1FLBD3gfnY6bup4v6zEWh6MXwsZ9eo';
|
|
1308
|
+
script.defer = true;
|
|
1309
|
+
script.onload = () => resolve();
|
|
1310
|
+
script.onerror = reject;
|
|
1311
|
+
script.type = 'text/javascript';
|
|
1312
|
+
document.head.appendChild(script);
|
|
1313
|
+
});
|
|
12
1314
|
}
|
|
13
|
-
|
|
14
|
-
|
|
1315
|
+
async LoadBmapLibScript() {
|
|
1316
|
+
return new Promise((resolve, reject) => {
|
|
1317
|
+
// 地图加载完成后再加载BMapGLLib
|
|
1318
|
+
const bmapLibScript = document.createElement('script');
|
|
1319
|
+
bmapLibScript.src = '//mapopen.bj.bcebos.com/github/BMapGLLib/AreaRestriction/src/AreaRestriction.min.js';
|
|
1320
|
+
bmapLibScript.defer = true;
|
|
1321
|
+
bmapLibScript.type = 'text/javascript';
|
|
1322
|
+
bmapLibScript.onload = () => {
|
|
1323
|
+
resolve();
|
|
1324
|
+
};
|
|
1325
|
+
bmapLibScript.onerror = reject;
|
|
1326
|
+
document.head.appendChild(bmapLibScript);
|
|
1327
|
+
});
|
|
15
1328
|
}
|
|
16
1329
|
render() {
|
|
17
|
-
return (index.h(index.Host, null)
|
|
1330
|
+
return (index.h(index.Host, null, index.h("div", { id: "mapContainer", ref: (dom) => {
|
|
1331
|
+
if (dom) {
|
|
1332
|
+
this.mapRef = dom;
|
|
1333
|
+
}
|
|
1334
|
+
}, style: { width: this.width, height: this.height } })));
|
|
18
1335
|
}
|
|
1336
|
+
get el() { return index.getElement(this); }
|
|
19
1337
|
};
|
|
1338
|
+
Map.style = mapCss;
|
|
20
1339
|
|
|
21
1340
|
exports.taro_map_core = Map;
|