@spuermomonga/vue3-bmapgl 0.0.9 → 0.0.10

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/dist/index.js CHANGED
@@ -114,13 +114,6 @@
114
114
  }
115
115
  });
116
116
 
117
- var tile = /* @__PURE__ */ vue.defineComponent({
118
- name: "TileLayer",
119
- setup() {
120
- return () => vue.createVNode(vue.Fragment, null, null);
121
- }
122
- });
123
-
124
117
  function useConfig(props = {}) {
125
118
  const BConfigProvider = vue.inject(configProviderInjectionKey, null);
126
119
  return {
@@ -359,6 +352,183 @@
359
352
  return BMap.mapInstance;
360
353
  }
361
354
 
355
+ const tileLayerProps = {
356
+ visible: {
357
+ type: Boolean,
358
+ default: true
359
+ },
360
+ transform: Object,
361
+ png8: Boolean,
362
+ height: Number,
363
+ retry: {
364
+ type: Boolean,
365
+ default: void 0
366
+ },
367
+ retryTime: Number,
368
+ transparentPng: {
369
+ type: Boolean,
370
+ default: true
371
+ },
372
+ dataType: Number,
373
+ spanLevel: {
374
+ type: Number,
375
+ default: 0
376
+ },
377
+ tileTypeName: String,
378
+ cacheSize: {
379
+ type: Number,
380
+ default: 256
381
+ },
382
+ customLayer: {
383
+ type: Boolean,
384
+ default: void 0
385
+ },
386
+ clipTile: {
387
+ type: Boolean,
388
+ default: void 0
389
+ },
390
+ isTop: Boolean,
391
+ opacity: {
392
+ type: Number,
393
+ default: 1
394
+ },
395
+ isLowText: Boolean,
396
+ boundary: Array,
397
+ showRegion: String,
398
+ useThumbData: Boolean,
399
+ zIndex: Number,
400
+ zIndexTop: Boolean,
401
+ tileUrlTemplate: String,
402
+ getTilesUrl: Function
403
+ };
404
+
405
+ var tile = /* @__PURE__ */ vue.defineComponent({
406
+ name: "TileLayer",
407
+ props: tileLayerProps,
408
+ setup(props) {
409
+ const mapInstance = useMapInstance();
410
+ let layer = null;
411
+ const setZIndex = (zIndex) => {
412
+ layer?.setZIndex(zIndex);
413
+ };
414
+ const setBoundary = (boundary) => {
415
+ boundary ? layer?.addBoundary(boundary) : layer?.clearBoundary();
416
+ };
417
+ const setZIndexTop = (zIndexTop) => {
418
+ layer?.setTop(zIndexTop);
419
+ };
420
+ const addTileLayer = () => {
421
+ const {
422
+ getTilesUrl
423
+ } = props;
424
+ if (!layer) return;
425
+ if (getTilesUrl) {
426
+ mapInstance().addTileLayer(layer);
427
+ layer.loadRasterTileData = function(tileInfo, callback) {
428
+ const key = this.getTileKey(tileInfo);
429
+ const handleImageLoad = (image) => {
430
+ image.tileInfo = tileInfo;
431
+ callback && callback(image, key);
432
+ };
433
+ const handleError = () => callback && callback(null, key);
434
+ const box = BMapGL.Projection.tileToBoundRange({
435
+ col: tileInfo.col,
436
+ row: tileInfo.row,
437
+ baseTileSize: tileInfo.baseTileSize,
438
+ zoom: tileInfo.zoom
439
+ });
440
+ getTilesUrl({
441
+ x: tileInfo.col,
442
+ y: tileInfo.row,
443
+ z: tileInfo.zoom
444
+ }, box, (img) => {
445
+ if (typeof img === "string" || img instanceof HTMLCanvasElement) {
446
+ const image = new Image();
447
+ image.crossOrigin = "anonymous";
448
+ image.onload = () => handleImageLoad(image);
449
+ image.onerror = handleError;
450
+ image.src = typeof img === "string" ? img : img.toDataURL();
451
+ } else if (img instanceof HTMLImageElement) {
452
+ handleImageLoad(img);
453
+ } else {
454
+ handleError();
455
+ }
456
+ });
457
+ };
458
+ } else {
459
+ mapInstance().addTileLayer(layer);
460
+ }
461
+ };
462
+ const initLayerOptions = () => {
463
+ const {
464
+ zIndex,
465
+ boundary
466
+ } = props;
467
+ setBoundary(boundary);
468
+ setZIndex(zIndex);
469
+ };
470
+ const startWatchProps = () => {
471
+ vue.watch(() => props.zIndex, setZIndex);
472
+ vue.watch(() => props.boundary, setBoundary);
473
+ vue.watch(() => props.zIndexTop, setZIndexTop);
474
+ vue.watch(() => props.visible, (n) => n ? addTileLayer() : mapInstance().removeTileLayer(layer));
475
+ };
476
+ const init = () => {
477
+ const {
478
+ visible,
479
+ transform,
480
+ png8,
481
+ height,
482
+ retry,
483
+ retryTime,
484
+ transparentPng,
485
+ dataType,
486
+ spanLevel,
487
+ tileTypeName,
488
+ cacheSize,
489
+ customLayer,
490
+ clipTile,
491
+ isTop,
492
+ opacity,
493
+ isLowText,
494
+ showRegion,
495
+ useThumbData,
496
+ tileUrlTemplate
497
+ } = props;
498
+ layer = new BMapGL.TileLayer({
499
+ transform,
500
+ png8,
501
+ height,
502
+ retry,
503
+ retryTime,
504
+ transparentPng,
505
+ dataType,
506
+ spanLevel,
507
+ tileTypeName,
508
+ cacheSize,
509
+ customLayer,
510
+ clipTile,
511
+ isTop,
512
+ opacity,
513
+ isLowText,
514
+ showRegion,
515
+ useThumbData,
516
+ tileUrlTemplate
517
+ });
518
+ initLayerOptions();
519
+ visible && addTileLayer();
520
+ startWatchProps();
521
+ };
522
+ init();
523
+ vue.onUnmounted(() => {
524
+ if (layer) {
525
+ mapInstance().removeTileLayer(layer);
526
+ }
527
+ });
528
+ return () => vue.createVNode(vue.Fragment, null, null);
529
+ }
530
+ });
531
+
362
532
  const xyzLayerProps = {
363
533
  visible: {
364
534
  type: Boolean,
@@ -675,6 +845,7 @@
675
845
  exports.mapInjectionKey = mapInjectionKey;
676
846
  exports.mapProps = mapProps;
677
847
  exports.polygonProps = polygonProps;
848
+ exports.tileLayerProps = tileLayerProps;
678
849
  exports.xyzLayerProps = xyzLayerProps;
679
850
 
680
851
  }));
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Vue3Bmapgl={},e.vue)}(this,function(e,t){"use strict";let a=!1;function o(e){return e.some(e=>!t.isVNode(e)||e.type!==Comment&&!(e.type===t.Fragment&&!o(e.children)))?e:null}function n(e,t){return t(e&&o(e())||null)}const l={ak:String,apiUrl:String,plugins:Array,mapConfig:Object},r=Symbol("b-config-provider");var i=t.defineComponent({name:"ConfigProvider",props:l,setup(e,{slots:o}){const n=t.ref("notload"),l=e.apiUrl?"_initBMap_":`_initBMap_${e.ak}`,i=e.apiUrl?`${e.apiUrl.replace(/&$/,"")}&callback=${l}`:`//api.map.baidu.com/api?type=webgl&v=1.0&ak=${e.ak}&callback=${l}`;n.value="pending",function(e){const{key:t,src:o,addCalToWindow:n=!0,timeout:l=1e4}=e;return a&&window.BMapGL?Promise.resolve():new Promise((e,r)=>{const i=document.createElement("script");i.src=o,i.type="text/javascript",i.defer=!0;const s=()=>{i.onload=null,i.onerror=null,document.body.contains(i)&&document.body.removeChild(i)},d=setTimeout(()=>{s(),r(new Error(`Script load timeout: ${o}`))},l),p=()=>{clearTimeout(d),a=!0,s(),e()};n?window[t]=p:i.onload=p,i.onerror=()=>{clearTimeout(d),s(),r(new Error(`Failed to load script: ${o}`))},document.body.appendChild(i)})}({key:l,src:i}).then(()=>{n.value="loaded"}).catch(()=>{n.value="failed"});const s=t.computed(()=>{const{mapConfig:t}=e;return t??{}});return t.provide(r,{mergedStatusRef:n,mergedMapSetRef:s}),()=>t.renderSlot(o,"default")}}),s=t.defineComponent({name:"TileLayer",setup:()=>()=>t.createVNode(t.Fragment,null,null)});const d=Symbol("b-map"),p={maxZoom:Number,minZoom:Number,heading:Number,center:Object,zoom:Number,class:String,contentClass:String,enableScrollWheelZoom:{type:Boolean,default:void 0},enableDragging:{type:Boolean,default:void 0},tilt:Number,enableTilt:{type:Boolean,default:void 0},mapType:String,enableAutoResize:{type:Boolean,default:void 0},enableTiltGestures:{type:Boolean,default:void 0},enableRotate:{type:Boolean,default:void 0},enableRotateGestures:{type:Boolean,default:void 0},displayOptions:Object,onInitd:Function};var m="map-module_b-map__29r3m",u="map-module_b-map-content__sMaJG",c="map-module_b-map-loading__qc4a8",f="map-module_b-map-failed__-w-tX";!function(e,t){void 0===t&&(t={});var a=t.insertAt;if("undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===a&&o.firstChild?o.insertBefore(n,o.firstChild):o.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}(".map-module_b-map-content__sMaJG,.map-module_b-map__29r3m{height:100%;overflow:hidden;position:relative;width:100%}.map-module_b-map-failed__-w-tX,.map-module_b-map-loading__qc4a8{color:#999;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}");var y=t.defineComponent({name:"Map",props:p,slots:Object,setup(e,{slots:a}){const{mergedMapSetRef:o,mergedStatusRef:l}=function(e={}){const a=t.inject(r,null);return{mergedStatusRef:a?.mergedStatusRef,mergedMapSetRef:t.computed(()=>{const{zoom:t,center:o,heading:n,minZoom:l,maxZoom:r,enableScrollWheelZoom:i,enableDragging:s,tilt:d,enableTilt:p,mapType:m,enableAutoResize:u,enableTiltGestures:c,enableRotate:f,enableRotateGestures:y,displayOptions:g}=e;return{zoom:t??a?.mergedMapSetRef.value?.zoom??14,center:o??a?.mergedMapSetRef.value?.center??[116.403901,39.915185],heading:n??a?.mergedMapSetRef.value?.heading??0,minZoom:l??a?.mergedMapSetRef.value?.minZoom??0,maxZoom:r??a?.mergedMapSetRef.value?.maxZoom??21,enableScrollWheelZoom:i??a?.mergedMapSetRef.value?.enableScrollWheelZoom??!1,enableDragging:s??a?.mergedMapSetRef.value?.enableDragging??!0,tilt:d??a?.mergedMapSetRef.value?.tilt??0,enableTilt:p??a?.mergedMapSetRef.value?.enableTilt??!1,mapType:m??a?.mergedMapSetRef.value?.mapType??"BMAP_NORMAL_MAP",enableAutoResize:u??a?.mergedMapSetRef.value?.enableAutoResize??!0,enableTiltGestures:c??a?.mergedMapSetRef.value?.enableTiltGestures??!1,enableRotate:f??a?.mergedMapSetRef.value?.enableRotate??!1,enableRotateGestures:y??a?.mergedMapSetRef.value?.enableRotateGestures??!1,displayOptions:g??a?.mergedMapSetRef.value?.displayOptions}})}}(e),i=t.ref();let s=null;const p=t.ref(!1);t.provide(d,{mapInstance:()=>s});const y=e=>{"string"==typeof e?s?.centerAndZoom(e,o.value.zoom):Array.isArray(e)?s?.centerAndZoom(new BMapGL.Point(e[0],e[1]),o.value.zoom):s?.centerAndZoom(e,o.value.zoom)},g=e=>{e?s.enableScrollWheelZoom():s.disableScrollWheelZoom()},b=e=>{s?.setDisplayOptions(e||{})},v=e=>{s?.setTilt(e??0)},T=e=>{s?.setHeading(e??0)},h=e=>{e?s.enableDragging():s.disableDragging()},S=e=>{void 0!==window[e]&&s.setMapType(window[e])},R=()=>{const{maxZoom:a,minZoom:n,enableTilt:l,mapType:r,enableAutoResize:d,enableTiltGestures:m,enableRotate:u,enableRotateGestures:c,displayOptions:f}=o.value;s=new BMapGL.Map(i.value,{maxZoom:a,minZoom:n,enableTilt:l,mapType:window[r],enableAutoResize:d,enableTiltGestures:m,enableRotate:u,enableRotateGestures:c,displayOptions:f});const{onInitd:R}=e;(()=>{const{center:e,heading:t,enableScrollWheelZoom:a,tilt:n,enableDragging:l}=o.value;T(t),y(e),g(a),v(n),h(l)})(),t.watch(()=>o.value.center,y,{deep:!0}),t.watch(()=>o.value.enableScrollWheelZoom,g),t.watch(()=>o.value.displayOptions,b),t.watch(()=>o.value.tilt,v),t.watch(()=>o.value.heading,T),t.watch(()=>o.value.enableDragging,h),t.watch(()=>o.value.mapType,S),R?.({map:s}),p.value=!0};return t.onMounted(()=>{t.watchEffect(()=>{"loaded"!==l?.value||p.value||t.nextTick(R)})}),t.onUnmounted(()=>{if(s)try{s?.destroy()}catch(e){console.error(`[Vue3 BMapGL]: ${e.message}`)}}),()=>t.createVNode("div",{class:[[m],e.class]},[t.createVNode("div",{ref:i,class:[u,e.contentClass]},["pending"===l?.value&&n(a.loading,()=>t.createVNode("div",{class:[c]},[t.createTextVNode("map loading...")])),"failed"===l?.value&&n(a.failed,()=>t.createVNode("div",{class:[f]},[t.createTextVNode("map failed")]))]),p.value&&a.default?.()])}});function g(){return t.inject(d,null).mapInstance}const b={visible:{type:Boolean,default:!0},getTile:{type:Function},useThumbData:{type:Boolean,default:!1},xTemplate:{type:Function},yTemplate:{type:Function},zTemplate:{type:Function},bTemplate:{type:Function},minZoom:{type:Number,default:3},maxZoom:{type:Number,default:23},extent:{type:Array},extentCRSIsWGS84:{type:Boolean,default:!1},boundary:{type:Array},zIndex:{type:Number,default:1},zIndexTop:{type:Boolean,default:!1},tms:{type:Boolean,default:!1}};var v=t.defineComponent({name:"XyzLayer",props:b,setup(e){const a=g();let o=null;const n=e=>{o?.setZIndex(e)},l=e=>{e&&!e.length?o?.addBoundary(e):o?.clearBoundary()},r=()=>{const{zIndex:t,zIndexTop:a}=e;n(t),(e=>{e&&o?.setZIndexTop()})(a)};return(()=>{const{visible:i,getTile:s,xTemplate:d,yTemplate:p,zTemplate:m,bTemplate:u,minZoom:c,maxZoom:f,extent:y,extentCRSIsWGS84:g,boundary:b,useThumbData:v,tms:T}=e;o=new BMapGL.XYZLayer({xTemplate:d,yTemplate:p,zTemplate:m,bTemplate:u,minZoom:c,maxZoom:f,extent:y,extentCRSIsWGS84:g,boundary:b,useThumbData:v,tms:T}),r(),i&&(s?(a().addTileLayer(o),o.loadRasterTileData=function(e,t){const a=this.getTileKey(e),o=o=>{o.tileInfo=e,t&&t(o,a)},n=()=>t&&t(null,a),l=BMapGL.XYZProjection.getTileRangeExtent([e.zoom,e.col,e.row]);s({x:e.col,y:e.row,z:e.zoom},l,e=>{if("string"==typeof e||e instanceof HTMLCanvasElement){const t=new Image;t.crossOrigin="anonymous",t.onload=()=>o(t),t.onerror=n,t.src="string"==typeof e?e:e.toDataURL()}else e instanceof HTMLImageElement?o(e):n()})}):a().addTileLayer(o)),t.watch(()=>e.zIndex,n),t.watch(()=>e.boundary,l)})(),t.onUnmounted(()=>{o&&a().removeTileLayer(o)}),()=>t.createVNode(t.Fragment,null,null)}});const T={visible:{type:Boolean,default:!0},points:{type:Array},strokeColor:{type:String,default:"#000"},fillColor:{type:String,default:"#fff"},strokeWeight:{type:Number,default:2},strokeOpacity:{type:Number,default:1},fillOpacity:{type:Number,default:.3},strokeStyle:{type:String,default:"solid"},enableMassClear:{type:Boolean,default:!0},enableEditing:{type:Boolean,default:!1},isBoundary:{type:Boolean},enableClicking:{type:Boolean,default:!0}};var h=t.defineComponent({name:"Polygon",props:T,setup:e=>{const a=g();let o=null;const n=e=>{o&&o.setStrokeColor(e)};return(()=>{const{points:l,visible:r,strokeColor:i,fillColor:s,strokeWeight:d,strokeOpacity:p,fillOpacity:m,strokeStyle:u,enableMassClear:c,enableEditing:f,enableClicking:y}=e;l&&l.length&&(o=new BMapGL.Polygon(function(e){if(!e||0===e.length)return[];const t=e[0];return Array.isArray(t)?e.map(([e,t])=>new BMapGL.Point(e,t)):e}(l),{strokeColor:i,fillColor:s,strokeWeight:d,strokeOpacity:p,fillOpacity:m,strokeStyle:u,enableMassClear:c,enableEditing:f,enableClicking:y}),r&&a().addOverlay(o),t.watch(()=>e.strokeColor,n),t.watch(()=>e.visible,e=>{a()[e?"addOverlay":"removeOverlay"](o)}))})(),t.onUnmounted(()=>{o&&a().removeOverlay(o)}),()=>t.createVNode(t.Fragment,null,null)}}),S=t.defineComponent({name:"Sector",setup:()=>()=>t.createVNode(t.Fragment,null,null)});e.BConfigProvider=i,e.BMap=y,e.BPolygon=h,e.BSector=S,e.BTileLayer=s,e.BXyzLayer=v,e.configProviderInjectionKey=r,e.configProviderProps=l,e.create=function({componentPrefix:e="B",components:t=[]}={}){const a=[];function o(t,a,o){t.component(e+a)||t.component(e+a,o)}return{componentPrefix:e,install:function(e){a.includes(e)||(a.push(e),t.forEach(t=>{const{name:a,alias:n}=t;o(e,a,t),n&&n.forEach(a=>{o(e,a,t)})}))}}},e.mapInjectionKey=d,e.mapProps=p,e.polygonProps=T,e.xyzLayerProps=b});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Vue3Bmapgl={},e.vue)}(this,function(e,t){"use strict";let o=!1;function a(e){return e.some(e=>!t.isVNode(e)||e.type!==Comment&&!(e.type===t.Fragment&&!a(e.children)))?e:null}function n(e,t){return t(e&&a(e())||null)}const l={ak:String,apiUrl:String,plugins:Array,mapConfig:Object},r=Symbol("b-config-provider");var i=t.defineComponent({name:"ConfigProvider",props:l,setup(e,{slots:a}){const n=t.ref("notload"),l=e.apiUrl?"_initBMap_":`_initBMap_${e.ak}`,i=e.apiUrl?`${e.apiUrl.replace(/&$/,"")}&callback=${l}`:`//api.map.baidu.com/api?type=webgl&v=1.0&ak=${e.ak}&callback=${l}`;n.value="pending",function(e){const{key:t,src:a,addCalToWindow:n=!0,timeout:l=1e4}=e;return o&&window.BMapGL?Promise.resolve():new Promise((e,r)=>{const i=document.createElement("script");i.src=a,i.type="text/javascript",i.defer=!0;const s=()=>{i.onload=null,i.onerror=null,document.body.contains(i)&&document.body.removeChild(i)},p=setTimeout(()=>{s(),r(new Error(`Script load timeout: ${a}`))},l),d=()=>{clearTimeout(p),o=!0,s(),e()};n?window[t]=d:i.onload=d,i.onerror=()=>{clearTimeout(p),s(),r(new Error(`Failed to load script: ${a}`))},document.body.appendChild(i)})}({key:l,src:i}).then(()=>{n.value="loaded"}).catch(()=>{n.value="failed"});const s=t.computed(()=>{const{mapConfig:t}=e;return t??{}});return t.provide(r,{mergedStatusRef:n,mergedMapSetRef:s}),()=>t.renderSlot(a,"default")}});const s=Symbol("b-map"),p={maxZoom:Number,minZoom:Number,heading:Number,center:Object,zoom:Number,class:String,contentClass:String,enableScrollWheelZoom:{type:Boolean,default:void 0},enableDragging:{type:Boolean,default:void 0},tilt:Number,enableTilt:{type:Boolean,default:void 0},mapType:String,enableAutoResize:{type:Boolean,default:void 0},enableTiltGestures:{type:Boolean,default:void 0},enableRotate:{type:Boolean,default:void 0},enableRotateGestures:{type:Boolean,default:void 0},displayOptions:Object,onInitd:Function};var d="map-module_b-map__29r3m",m="map-module_b-map-content__sMaJG",u="map-module_b-map-loading__qc4a8",c="map-module_b-map-failed__-w-tX";!function(e,t){void 0===t&&(t={});var o=t.insertAt;if("undefined"!=typeof document){var a=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===o&&a.firstChild?a.insertBefore(n,a.firstChild):a.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}(".map-module_b-map-content__sMaJG,.map-module_b-map__29r3m{height:100%;overflow:hidden;position:relative;width:100%}.map-module_b-map-failed__-w-tX,.map-module_b-map-loading__qc4a8{color:#999;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}");var y=t.defineComponent({name:"Map",props:p,slots:Object,setup(e,{slots:o}){const{mergedMapSetRef:a,mergedStatusRef:l}=function(e={}){const o=t.inject(r,null);return{mergedStatusRef:o?.mergedStatusRef,mergedMapSetRef:t.computed(()=>{const{zoom:t,center:a,heading:n,minZoom:l,maxZoom:r,enableScrollWheelZoom:i,enableDragging:s,tilt:p,enableTilt:d,mapType:m,enableAutoResize:u,enableTiltGestures:c,enableRotate:y,enableRotateGestures:f,displayOptions:g}=e;return{zoom:t??o?.mergedMapSetRef.value?.zoom??14,center:a??o?.mergedMapSetRef.value?.center??[116.403901,39.915185],heading:n??o?.mergedMapSetRef.value?.heading??0,minZoom:l??o?.mergedMapSetRef.value?.minZoom??0,maxZoom:r??o?.mergedMapSetRef.value?.maxZoom??21,enableScrollWheelZoom:i??o?.mergedMapSetRef.value?.enableScrollWheelZoom??!1,enableDragging:s??o?.mergedMapSetRef.value?.enableDragging??!0,tilt:p??o?.mergedMapSetRef.value?.tilt??0,enableTilt:d??o?.mergedMapSetRef.value?.enableTilt??!1,mapType:m??o?.mergedMapSetRef.value?.mapType??"BMAP_NORMAL_MAP",enableAutoResize:u??o?.mergedMapSetRef.value?.enableAutoResize??!0,enableTiltGestures:c??o?.mergedMapSetRef.value?.enableTiltGestures??!1,enableRotate:y??o?.mergedMapSetRef.value?.enableRotate??!1,enableRotateGestures:f??o?.mergedMapSetRef.value?.enableRotateGestures??!1,displayOptions:g??o?.mergedMapSetRef.value?.displayOptions}})}}(e),i=t.ref();let p=null;const y=t.ref(!1);t.provide(s,{mapInstance:()=>p});const f=e=>{"string"==typeof e?p?.centerAndZoom(e,a.value.zoom):Array.isArray(e)?p?.centerAndZoom(new BMapGL.Point(e[0],e[1]),a.value.zoom):p?.centerAndZoom(e,a.value.zoom)},g=e=>{e?p.enableScrollWheelZoom():p.disableScrollWheelZoom()},b=e=>{p?.setDisplayOptions(e||{})},T=e=>{p?.setTilt(e??0)},v=e=>{p?.setHeading(e??0)},h=e=>{e?p.enableDragging():p.disableDragging()},S=e=>{void 0!==window[e]&&p.setMapType(window[e])},B=()=>{const{maxZoom:o,minZoom:n,enableTilt:l,mapType:r,enableAutoResize:s,enableTiltGestures:d,enableRotate:m,enableRotateGestures:u,displayOptions:c}=a.value;p=new BMapGL.Map(i.value,{maxZoom:o,minZoom:n,enableTilt:l,mapType:window[r],enableAutoResize:s,enableTiltGestures:d,enableRotate:m,enableRotateGestures:u,displayOptions:c});const{onInitd:B}=e;(()=>{const{center:e,heading:t,enableScrollWheelZoom:o,tilt:n,enableDragging:l}=a.value;v(t),f(e),g(o),T(n),h(l)})(),t.watch(()=>a.value.center,f,{deep:!0}),t.watch(()=>a.value.enableScrollWheelZoom,g),t.watch(()=>a.value.displayOptions,b),t.watch(()=>a.value.tilt,T),t.watch(()=>a.value.heading,v),t.watch(()=>a.value.enableDragging,h),t.watch(()=>a.value.mapType,S),B?.({map:p}),y.value=!0};return t.onMounted(()=>{t.watchEffect(()=>{"loaded"!==l?.value||y.value||t.nextTick(B)})}),t.onUnmounted(()=>{if(p)try{p?.destroy()}catch(e){console.error(`[Vue3 BMapGL]: ${e.message}`)}}),()=>t.createVNode("div",{class:[[d],e.class]},[t.createVNode("div",{ref:i,class:[m,e.contentClass]},["pending"===l?.value&&n(o.loading,()=>t.createVNode("div",{class:[u]},[t.createTextVNode("map loading...")])),"failed"===l?.value&&n(o.failed,()=>t.createVNode("div",{class:[c]},[t.createTextVNode("map failed")]))]),y.value&&o.default?.()])}});function f(){return t.inject(s,null).mapInstance}const g={visible:{type:Boolean,default:!0},transform:Object,png8:Boolean,height:Number,retry:{type:Boolean,default:void 0},retryTime:Number,transparentPng:{type:Boolean,default:!0},dataType:Number,spanLevel:{type:Number,default:0},tileTypeName:String,cacheSize:{type:Number,default:256},customLayer:{type:Boolean,default:void 0},clipTile:{type:Boolean,default:void 0},isTop:Boolean,opacity:{type:Number,default:1},isLowText:Boolean,boundary:Array,showRegion:String,useThumbData:Boolean,zIndex:Number,zIndexTop:Boolean,tileUrlTemplate:String,getTilesUrl:Function};var b=t.defineComponent({name:"TileLayer",props:g,setup(e){const o=f();let a=null;const n=e=>{a?.setZIndex(e)},l=e=>{e?a?.addBoundary(e):a?.clearBoundary()},r=e=>{a?.setTop(e)},i=()=>{const{getTilesUrl:t}=e;a&&(t?(o().addTileLayer(a),a.loadRasterTileData=function(e,o){const a=this.getTileKey(e),n=t=>{t.tileInfo=e,o&&o(t,a)},l=()=>o&&o(null,a),r=BMapGL.Projection.tileToBoundRange({col:e.col,row:e.row,baseTileSize:e.baseTileSize,zoom:e.zoom});t({x:e.col,y:e.row,z:e.zoom},r,e=>{if("string"==typeof e||e instanceof HTMLCanvasElement){const t=new Image;t.crossOrigin="anonymous",t.onload=()=>n(t),t.onerror=l,t.src="string"==typeof e?e:e.toDataURL()}else e instanceof HTMLImageElement?n(e):l()})}):o().addTileLayer(a))};return(()=>{const{visible:s,transform:p,png8:d,height:m,retry:u,retryTime:c,transparentPng:y,dataType:f,spanLevel:g,tileTypeName:b,cacheSize:T,customLayer:v,clipTile:h,isTop:S,opacity:B,isLowText:w,showRegion:R,useThumbData:x,tileUrlTemplate:M}=e;a=new BMapGL.TileLayer({transform:p,png8:d,height:m,retry:u,retryTime:c,transparentPng:y,dataType:f,spanLevel:g,tileTypeName:b,cacheSize:T,customLayer:v,clipTile:h,isTop:S,opacity:B,isLowText:w,showRegion:R,useThumbData:x,tileUrlTemplate:M}),(()=>{const{zIndex:t,boundary:o}=e;l(o),n(t)})(),s&&i(),t.watch(()=>e.zIndex,n),t.watch(()=>e.boundary,l),t.watch(()=>e.zIndexTop,r),t.watch(()=>e.visible,e=>e?i():o().removeTileLayer(a))})(),t.onUnmounted(()=>{a&&o().removeTileLayer(a)}),()=>t.createVNode(t.Fragment,null,null)}});const T={visible:{type:Boolean,default:!0},getTile:{type:Function},useThumbData:{type:Boolean,default:!1},xTemplate:{type:Function},yTemplate:{type:Function},zTemplate:{type:Function},bTemplate:{type:Function},minZoom:{type:Number,default:3},maxZoom:{type:Number,default:23},extent:{type:Array},extentCRSIsWGS84:{type:Boolean,default:!1},boundary:{type:Array},zIndex:{type:Number,default:1},zIndexTop:{type:Boolean,default:!1},tms:{type:Boolean,default:!1}};var v=t.defineComponent({name:"XyzLayer",props:T,setup(e){const o=f();let a=null;const n=e=>{a?.setZIndex(e)},l=e=>{e&&!e.length?a?.addBoundary(e):a?.clearBoundary()},r=()=>{const{zIndex:t,zIndexTop:o}=e;n(t),(e=>{e&&a?.setZIndexTop()})(o)};return(()=>{const{visible:i,getTile:s,xTemplate:p,yTemplate:d,zTemplate:m,bTemplate:u,minZoom:c,maxZoom:y,extent:f,extentCRSIsWGS84:g,boundary:b,useThumbData:T,tms:v}=e;a=new BMapGL.XYZLayer({xTemplate:p,yTemplate:d,zTemplate:m,bTemplate:u,minZoom:c,maxZoom:y,extent:f,extentCRSIsWGS84:g,boundary:b,useThumbData:T,tms:v}),r(),i&&(s?(o().addTileLayer(a),a.loadRasterTileData=function(e,t){const o=this.getTileKey(e),a=a=>{a.tileInfo=e,t&&t(a,o)},n=()=>t&&t(null,o),l=BMapGL.XYZProjection.getTileRangeExtent([e.zoom,e.col,e.row]);s({x:e.col,y:e.row,z:e.zoom},l,e=>{if("string"==typeof e||e instanceof HTMLCanvasElement){const t=new Image;t.crossOrigin="anonymous",t.onload=()=>a(t),t.onerror=n,t.src="string"==typeof e?e:e.toDataURL()}else e instanceof HTMLImageElement?a(e):n()})}):o().addTileLayer(a)),t.watch(()=>e.zIndex,n),t.watch(()=>e.boundary,l)})(),t.onUnmounted(()=>{a&&o().removeTileLayer(a)}),()=>t.createVNode(t.Fragment,null,null)}});const h={visible:{type:Boolean,default:!0},points:{type:Array},strokeColor:{type:String,default:"#000"},fillColor:{type:String,default:"#fff"},strokeWeight:{type:Number,default:2},strokeOpacity:{type:Number,default:1},fillOpacity:{type:Number,default:.3},strokeStyle:{type:String,default:"solid"},enableMassClear:{type:Boolean,default:!0},enableEditing:{type:Boolean,default:!1},isBoundary:{type:Boolean},enableClicking:{type:Boolean,default:!0}};var S=t.defineComponent({name:"Polygon",props:h,setup:e=>{const o=f();let a=null;const n=e=>{a&&a.setStrokeColor(e)};return(()=>{const{points:l,visible:r,strokeColor:i,fillColor:s,strokeWeight:p,strokeOpacity:d,fillOpacity:m,strokeStyle:u,enableMassClear:c,enableEditing:y,enableClicking:f}=e;l&&l.length&&(a=new BMapGL.Polygon(function(e){if(!e||0===e.length)return[];const t=e[0];return Array.isArray(t)?e.map(([e,t])=>new BMapGL.Point(e,t)):e}(l),{strokeColor:i,fillColor:s,strokeWeight:p,strokeOpacity:d,fillOpacity:m,strokeStyle:u,enableMassClear:c,enableEditing:y,enableClicking:f}),r&&o().addOverlay(a),t.watch(()=>e.strokeColor,n),t.watch(()=>e.visible,e=>{o()[e?"addOverlay":"removeOverlay"](a)}))})(),t.onUnmounted(()=>{a&&o().removeOverlay(a)}),()=>t.createVNode(t.Fragment,null,null)}}),B=t.defineComponent({name:"Sector",setup:()=>()=>t.createVNode(t.Fragment,null,null)});e.BConfigProvider=i,e.BMap=y,e.BPolygon=S,e.BSector=B,e.BTileLayer=b,e.BXyzLayer=v,e.configProviderInjectionKey=r,e.configProviderProps=l,e.create=function({componentPrefix:e="B",components:t=[]}={}){const o=[];function a(t,o,a){t.component(e+o)||t.component(e+o,a)}return{componentPrefix:e,install:function(e){o.includes(e)||(o.push(e),t.forEach(t=>{const{name:o,alias:n}=t;a(e,o,t),n&&n.forEach(o=>{a(e,o,t)})}))}}},e.mapInjectionKey=s,e.mapProps=p,e.polygonProps=h,e.tileLayerProps=g,e.xyzLayerProps=T});
package/es/components.mjs CHANGED
@@ -2,6 +2,7 @@ export { default as BConfigProvider } from './config-provider/src/config-provide
2
2
  export { configProviderProps } from './config-provider/src/config-provider-props.mjs';
3
3
  export { configProviderInjectionKey } from './config-provider/src/constants.mjs';
4
4
  export { default as BTileLayer } from './layer/tile/src/tile.mjs';
5
+ export { tileLayerProps } from './layer/tile/src/tile-props.mjs';
5
6
  export { default as BXyzLayer } from './layer/xyz/src/xyz.mjs';
6
7
  export { xyzLayerProps } from './layer/xyz/src/xyz-props.mjs';
7
8
  export { mapInjectionKey } from './map/src/constants.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"components.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"components.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
package/es/index.mjs CHANGED
@@ -3,6 +3,7 @@ export { default as BConfigProvider } from './config-provider/src/config-provide
3
3
  export { configProviderProps } from './config-provider/src/config-provider-props.mjs';
4
4
  export { configProviderInjectionKey } from './config-provider/src/constants.mjs';
5
5
  export { default as BTileLayer } from './layer/tile/src/tile.mjs';
6
+ export { tileLayerProps } from './layer/tile/src/tile-props.mjs';
6
7
  export { default as BXyzLayer } from './layer/xyz/src/xyz.mjs';
7
8
  export { xyzLayerProps } from './layer/xyz/src/xyz-props.mjs';
8
9
  export { mapInjectionKey } from './map/src/constants.mjs';
package/es/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -1 +1,3 @@
1
1
  export { default as BTileLayer } from './src/tile';
2
+ export { tileLayerProps } from './src/tile-props';
3
+ export type { GetTilesUrlFn, TileLayerProps } from './src/tile-props';
@@ -1,2 +1,3 @@
1
1
  export { default as BTileLayer } from './src/tile.mjs';
2
+ export { tileLayerProps } from './src/tile-props.mjs';
2
3
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,60 @@
1
+ import type { PropType } from 'vue';
2
+ import type { ExtractPublicPropTypes } from '../../../_utils';
3
+ export type GetTilesUrlFn = (tile: {
4
+ x: number;
5
+ y: number;
6
+ z: number;
7
+ }, boundRange: any, cb: (image: string | HTMLImageElement | HTMLCanvasElement) => void) => void;
8
+ export declare const tileLayerProps: {
9
+ readonly visible: {
10
+ readonly type: BooleanConstructor;
11
+ readonly default: true;
12
+ };
13
+ readonly transform: PropType<{
14
+ source: string;
15
+ target: string;
16
+ }>;
17
+ readonly png8: BooleanConstructor;
18
+ readonly height: NumberConstructor;
19
+ readonly retry: {
20
+ readonly type: BooleanConstructor;
21
+ readonly default: undefined;
22
+ };
23
+ readonly retryTime: NumberConstructor;
24
+ readonly transparentPng: {
25
+ readonly type: BooleanConstructor;
26
+ readonly default: true;
27
+ };
28
+ readonly dataType: NumberConstructor;
29
+ readonly spanLevel: {
30
+ readonly type: NumberConstructor;
31
+ readonly default: 0;
32
+ };
33
+ readonly tileTypeName: StringConstructor;
34
+ readonly cacheSize: {
35
+ readonly type: NumberConstructor;
36
+ readonly default: 256;
37
+ };
38
+ readonly customLayer: {
39
+ readonly type: BooleanConstructor;
40
+ readonly default: undefined;
41
+ };
42
+ readonly clipTile: {
43
+ readonly type: BooleanConstructor;
44
+ readonly default: undefined;
45
+ };
46
+ readonly isTop: BooleanConstructor;
47
+ readonly opacity: {
48
+ readonly type: NumberConstructor;
49
+ readonly default: 1;
50
+ };
51
+ readonly isLowText: BooleanConstructor;
52
+ readonly boundary: PropType<string[] | string>;
53
+ readonly showRegion: StringConstructor;
54
+ readonly useThumbData: BooleanConstructor;
55
+ readonly zIndex: NumberConstructor;
56
+ readonly zIndexTop: BooleanConstructor;
57
+ readonly tileUrlTemplate: StringConstructor;
58
+ readonly getTilesUrl: PropType<GetTilesUrlFn>;
59
+ };
60
+ export type TileLayerProps = ExtractPublicPropTypes<typeof tileLayerProps>;
@@ -1,2 +1,52 @@
1
+ const tileLayerProps = {
2
+ visible: {
3
+ type: Boolean,
4
+ default: true
5
+ },
6
+ transform: Object,
7
+ png8: Boolean,
8
+ height: Number,
9
+ retry: {
10
+ type: Boolean,
11
+ default: void 0
12
+ },
13
+ retryTime: Number,
14
+ transparentPng: {
15
+ type: Boolean,
16
+ default: true
17
+ },
18
+ dataType: Number,
19
+ spanLevel: {
20
+ type: Number,
21
+ default: 0
22
+ },
23
+ tileTypeName: String,
24
+ cacheSize: {
25
+ type: Number,
26
+ default: 256
27
+ },
28
+ customLayer: {
29
+ type: Boolean,
30
+ default: void 0
31
+ },
32
+ clipTile: {
33
+ type: Boolean,
34
+ default: void 0
35
+ },
36
+ isTop: Boolean,
37
+ opacity: {
38
+ type: Number,
39
+ default: 1
40
+ },
41
+ isLowText: Boolean,
42
+ boundary: Array,
43
+ showRegion: String,
44
+ useThumbData: Boolean,
45
+ zIndex: Number,
46
+ zIndexTop: Boolean,
47
+ tileUrlTemplate: String,
48
+ getTilesUrl: Function
49
+ };
1
50
 
51
+ export { tileLayerProps };
2
52
  //# sourceMappingURL=tile-props.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tile-props.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"tile-props.mjs","sources":["../../../../src/layer/tile/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/layer/tile/src/tile-props.ts"],"sourcesContent":["import type { PropType } from 'vue'\r\nimport type { ExtractPublicPropTypes } from '../../../_utils'\r\n\r\nexport type GetTilesUrlFn = (tile: { x: number, y: number, z: number }, boundRange: any, cb: (image: string | HTMLImageElement | HTMLCanvasElement) => void) => void\r\n\r\nexport const tileLayerProps = {\r\n visible: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n transform: Object as PropType<{ source: string, target: string }>,\r\n png8: Boolean,\r\n height: Number,\r\n retry: {\r\n type: Boolean,\r\n default: undefined,\r\n },\r\n retryTime: Number,\r\n transparentPng: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n dataType: Number,\r\n spanLevel: {\r\n type: Number,\r\n default: 0,\r\n },\r\n tileTypeName: String,\r\n cacheSize: {\r\n type: Number,\r\n default: 256,\r\n },\r\n customLayer: {\r\n type: Boolean,\r\n default: undefined,\r\n },\r\n clipTile: {\r\n type: Boolean,\r\n default: undefined,\r\n },\r\n isTop: Boolean,\r\n opacity: {\r\n type: Number,\r\n default: 1,\r\n },\r\n isLowText: Boolean,\r\n boundary: Array as PropType<string[] | string>,\r\n showRegion: String,\r\n useThumbData: Boolean,\r\n zIndex: Number,\r\n zIndexTop: Boolean,\r\n tileUrlTemplate: String,\r\n getTilesUrl: Function as PropType<GetTilesUrlFn>,\r\n} as const\r\n\r\nexport type TileLayerProps = ExtractPublicPropTypes<typeof tileLayerProps>\r\n"],"names":[],"mappings":"AAKO,MAAM,cAAA,GAAiB;AAAA,EAC5B,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,SAAA,EAAW,MAAA;AAAA,EACX,IAAA,EAAM,OAAA;AAAA,EACN,MAAA,EAAQ,MAAA;AAAA,EACR,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,SAAA,EAAW,MAAA;AAAA,EACX,cAAA,EAAgB;AAAA,IACd,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,QAAA,EAAU,MAAA;AAAA,EACV,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,YAAA,EAAc,MAAA;AAAA,EACd,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,WAAA,EAAa;AAAA,IACX,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,KAAA,EAAO,OAAA;AAAA,EACP,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,SAAA,EAAW,OAAA;AAAA,EACX,QAAA,EAAU,KAAA;AAAA,EACV,UAAA,EAAY,MAAA;AAAA,EACZ,YAAA,EAAc,OAAA;AAAA,EACd,MAAA,EAAQ,MAAA;AAAA,EACR,SAAA,EAAW,OAAA;AAAA,EACX,eAAA,EAAiB,MAAA;AAAA,EACjB,WAAA,EAAa;;;;;"}
@@ -1,2 +1,118 @@
1
- declare const _default: import("vue").DefineComponent<{}, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
+ readonly visible: {
3
+ readonly type: BooleanConstructor;
4
+ readonly default: true;
5
+ };
6
+ readonly transform: import("vue").PropType<{
7
+ source: string;
8
+ target: string;
9
+ }>;
10
+ readonly png8: BooleanConstructor;
11
+ readonly height: NumberConstructor;
12
+ readonly retry: {
13
+ readonly type: BooleanConstructor;
14
+ readonly default: undefined;
15
+ };
16
+ readonly retryTime: NumberConstructor;
17
+ readonly transparentPng: {
18
+ readonly type: BooleanConstructor;
19
+ readonly default: true;
20
+ };
21
+ readonly dataType: NumberConstructor;
22
+ readonly spanLevel: {
23
+ readonly type: NumberConstructor;
24
+ readonly default: 0;
25
+ };
26
+ readonly tileTypeName: StringConstructor;
27
+ readonly cacheSize: {
28
+ readonly type: NumberConstructor;
29
+ readonly default: 256;
30
+ };
31
+ readonly customLayer: {
32
+ readonly type: BooleanConstructor;
33
+ readonly default: undefined;
34
+ };
35
+ readonly clipTile: {
36
+ readonly type: BooleanConstructor;
37
+ readonly default: undefined;
38
+ };
39
+ readonly isTop: BooleanConstructor;
40
+ readonly opacity: {
41
+ readonly type: NumberConstructor;
42
+ readonly default: 1;
43
+ };
44
+ readonly isLowText: BooleanConstructor;
45
+ readonly boundary: import("vue").PropType<string[] | string>;
46
+ readonly showRegion: StringConstructor;
47
+ readonly useThumbData: BooleanConstructor;
48
+ readonly zIndex: NumberConstructor;
49
+ readonly zIndexTop: BooleanConstructor;
50
+ readonly tileUrlTemplate: StringConstructor;
51
+ readonly getTilesUrl: import("vue").PropType<import("./tile-props").GetTilesUrlFn>;
52
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
53
+ readonly visible: {
54
+ readonly type: BooleanConstructor;
55
+ readonly default: true;
56
+ };
57
+ readonly transform: import("vue").PropType<{
58
+ source: string;
59
+ target: string;
60
+ }>;
61
+ readonly png8: BooleanConstructor;
62
+ readonly height: NumberConstructor;
63
+ readonly retry: {
64
+ readonly type: BooleanConstructor;
65
+ readonly default: undefined;
66
+ };
67
+ readonly retryTime: NumberConstructor;
68
+ readonly transparentPng: {
69
+ readonly type: BooleanConstructor;
70
+ readonly default: true;
71
+ };
72
+ readonly dataType: NumberConstructor;
73
+ readonly spanLevel: {
74
+ readonly type: NumberConstructor;
75
+ readonly default: 0;
76
+ };
77
+ readonly tileTypeName: StringConstructor;
78
+ readonly cacheSize: {
79
+ readonly type: NumberConstructor;
80
+ readonly default: 256;
81
+ };
82
+ readonly customLayer: {
83
+ readonly type: BooleanConstructor;
84
+ readonly default: undefined;
85
+ };
86
+ readonly clipTile: {
87
+ readonly type: BooleanConstructor;
88
+ readonly default: undefined;
89
+ };
90
+ readonly isTop: BooleanConstructor;
91
+ readonly opacity: {
92
+ readonly type: NumberConstructor;
93
+ readonly default: 1;
94
+ };
95
+ readonly isLowText: BooleanConstructor;
96
+ readonly boundary: import("vue").PropType<string[] | string>;
97
+ readonly showRegion: StringConstructor;
98
+ readonly useThumbData: BooleanConstructor;
99
+ readonly zIndex: NumberConstructor;
100
+ readonly zIndexTop: BooleanConstructor;
101
+ readonly tileUrlTemplate: StringConstructor;
102
+ readonly getTilesUrl: import("vue").PropType<import("./tile-props").GetTilesUrlFn>;
103
+ }>> & Readonly<{}>, {
104
+ readonly visible: boolean;
105
+ readonly png8: boolean;
106
+ readonly retry: boolean;
107
+ readonly transparentPng: boolean;
108
+ readonly spanLevel: number;
109
+ readonly cacheSize: number;
110
+ readonly customLayer: boolean;
111
+ readonly clipTile: boolean;
112
+ readonly isTop: boolean;
113
+ readonly opacity: number;
114
+ readonly isLowText: boolean;
115
+ readonly useThumbData: boolean;
116
+ readonly zIndexTop: boolean;
117
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
118
  export default _default;
@@ -1,8 +1,130 @@
1
- import { defineComponent, createVNode, Fragment } from 'vue';
1
+ import { defineComponent, onUnmounted, createVNode, Fragment, watch } from 'vue';
2
+ import { tileLayerProps } from './tile-props.mjs';
3
+ import useMapInstance from '../../../_mixins/use-map-instance.mjs';
2
4
 
3
5
  var tile = /* @__PURE__ */ defineComponent({
4
6
  name: "TileLayer",
5
- setup() {
7
+ props: tileLayerProps,
8
+ setup(props) {
9
+ const mapInstance = useMapInstance();
10
+ let layer = null;
11
+ const setZIndex = (zIndex) => {
12
+ layer === null || layer === void 0 ? void 0 : layer.setZIndex(zIndex);
13
+ };
14
+ const setBoundary = (boundary) => {
15
+ boundary ? layer === null || layer === void 0 ? void 0 : layer.addBoundary(boundary) : layer === null || layer === void 0 ? void 0 : layer.clearBoundary();
16
+ };
17
+ const setZIndexTop = (zIndexTop) => {
18
+ layer === null || layer === void 0 ? void 0 : layer.setTop(zIndexTop);
19
+ };
20
+ const addTileLayer = () => {
21
+ const {
22
+ getTilesUrl
23
+ } = props;
24
+ if (!layer) return;
25
+ if (getTilesUrl) {
26
+ mapInstance().addTileLayer(layer);
27
+ layer.loadRasterTileData = function(tileInfo, callback) {
28
+ const key = this.getTileKey(tileInfo);
29
+ const handleImageLoad = (image) => {
30
+ image.tileInfo = tileInfo;
31
+ callback && callback(image, key);
32
+ };
33
+ const handleError = () => callback && callback(null, key);
34
+ const box = BMapGL.Projection.tileToBoundRange({
35
+ col: tileInfo.col,
36
+ row: tileInfo.row,
37
+ baseTileSize: tileInfo.baseTileSize,
38
+ zoom: tileInfo.zoom
39
+ });
40
+ getTilesUrl({
41
+ x: tileInfo.col,
42
+ y: tileInfo.row,
43
+ z: tileInfo.zoom
44
+ }, box, (img) => {
45
+ if (typeof img === "string" || img instanceof HTMLCanvasElement) {
46
+ const image = new Image();
47
+ image.crossOrigin = "anonymous";
48
+ image.onload = () => handleImageLoad(image);
49
+ image.onerror = handleError;
50
+ image.src = typeof img === "string" ? img : img.toDataURL();
51
+ } else if (img instanceof HTMLImageElement) {
52
+ handleImageLoad(img);
53
+ } else {
54
+ handleError();
55
+ }
56
+ });
57
+ };
58
+ } else {
59
+ mapInstance().addTileLayer(layer);
60
+ }
61
+ };
62
+ const initLayerOptions = () => {
63
+ const {
64
+ zIndex,
65
+ boundary
66
+ } = props;
67
+ setBoundary(boundary);
68
+ setZIndex(zIndex);
69
+ };
70
+ const startWatchProps = () => {
71
+ watch(() => props.zIndex, setZIndex);
72
+ watch(() => props.boundary, setBoundary);
73
+ watch(() => props.zIndexTop, setZIndexTop);
74
+ watch(() => props.visible, (n) => n ? addTileLayer() : mapInstance().removeTileLayer(layer));
75
+ };
76
+ const init = () => {
77
+ const {
78
+ visible,
79
+ transform,
80
+ png8,
81
+ height,
82
+ retry,
83
+ retryTime,
84
+ transparentPng,
85
+ dataType,
86
+ spanLevel,
87
+ tileTypeName,
88
+ cacheSize,
89
+ customLayer,
90
+ clipTile,
91
+ isTop,
92
+ opacity,
93
+ isLowText,
94
+ showRegion,
95
+ useThumbData,
96
+ tileUrlTemplate
97
+ } = props;
98
+ layer = new BMapGL.TileLayer({
99
+ transform,
100
+ png8,
101
+ height,
102
+ retry,
103
+ retryTime,
104
+ transparentPng,
105
+ dataType,
106
+ spanLevel,
107
+ tileTypeName,
108
+ cacheSize,
109
+ customLayer,
110
+ clipTile,
111
+ isTop,
112
+ opacity,
113
+ isLowText,
114
+ showRegion,
115
+ useThumbData,
116
+ tileUrlTemplate
117
+ });
118
+ initLayerOptions();
119
+ visible && addTileLayer();
120
+ startWatchProps();
121
+ };
122
+ init();
123
+ onUnmounted(() => {
124
+ if (layer) {
125
+ mapInstance().removeTileLayer(layer);
126
+ }
127
+ });
6
128
  return () => createVNode(Fragment, null, null);
7
129
  }
8
130
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tile.mjs","sources":["../../../../src/layer/tile/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/layer/tile/src/tile.tsx"],"sourcesContent":["import { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'TileLayer',\r\n setup() {\r\n return () => <></>\r\n },\r\n})\r\n"],"names":["name","setup","_createVNode","_Fragment"],"mappings":";;AAEA,2CAA+B;AAAA,EAC7BA,IAAAA,EAAM,WAAA;AAAA,EACNC,KAAAA,GAAK;AACH,IAAA,OAAO,MAAAC,WAAAA,CAAAC,QAAAA,EAAA,IAAA,EAAA,IAAA,CAAA;AAAA,EACT;AACD,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"tile.mjs","sources":["../../../../src/layer/tile/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/layer/tile/src/tile.tsx"],"sourcesContent":["import { defineComponent, onUnmounted, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { tileLayerProps } from './tile-props'\r\n\r\nexport default defineComponent({\r\n name: 'TileLayer',\r\n props: tileLayerProps,\r\n setup(props) {\r\n const mapInstance = useMapInstance()\r\n\r\n let layer: BMapGL.TileLayer | null = null\r\n\r\n const setZIndex = (zIndex?: number) => {\r\n (layer as any)?.setZIndex(zIndex)\r\n }\r\n\r\n const setBoundary = (boundary?: string[] | string) => {\r\n boundary ? (layer as any)?.addBoundary(boundary) : (layer as any)?.clearBoundary()\r\n }\r\n\r\n const setZIndexTop = (zIndexTop?: boolean) => {\r\n (layer as any)?.setTop(zIndexTop)\r\n }\r\n\r\n const addTileLayer = () => {\r\n const { getTilesUrl } = props\r\n if (!layer)\r\n return\r\n if (getTilesUrl) {\r\n mapInstance().addTileLayer(layer)\r\n ;(layer as any).loadRasterTileData = function (tileInfo: any, callback: any) {\r\n const key = this.getTileKey(tileInfo)\r\n\r\n const handleImageLoad = (image: HTMLImageElement) => {\r\n (image as any).tileInfo = tileInfo\r\n callback && callback(image, key)\r\n }\r\n\r\n const handleError = () => callback && callback(null, key)\r\n\r\n const box = (BMapGL as any).Projection.tileToBoundRange({\r\n col: tileInfo.col,\r\n row: tileInfo.row,\r\n baseTileSize: tileInfo.baseTileSize,\r\n zoom: tileInfo.zoom,\r\n })\r\n\r\n getTilesUrl({ x: tileInfo.col, y: tileInfo.row, z: tileInfo.zoom }, box, (img) => {\r\n if (typeof img === 'string' || img instanceof HTMLCanvasElement) {\r\n const image = new Image()\r\n image.crossOrigin = 'anonymous'\r\n\r\n image.onload = () => handleImageLoad(image)\r\n image.onerror = handleError\r\n\r\n image.src = typeof img === 'string' ? img : img.toDataURL()\r\n } else if (img instanceof HTMLImageElement) {\r\n handleImageLoad(img)\r\n } else {\r\n handleError()\r\n }\r\n })\r\n }\r\n } else {\r\n mapInstance().addTileLayer(layer)\r\n }\r\n }\r\n\r\n const initLayerOptions = () => {\r\n const { zIndex, boundary } = props\r\n setBoundary(boundary)\r\n setZIndex(zIndex)\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => props.zIndex, setZIndex)\r\n watch(() => props.boundary, setBoundary)\r\n watch(() => props.zIndexTop, setZIndexTop)\r\n watch(() => props.visible, n => n ? addTileLayer() : mapInstance().removeTileLayer(layer!))\r\n }\r\n\r\n const init = () => {\r\n const { visible, transform, png8, height, retry, retryTime, transparentPng, dataType, spanLevel, tileTypeName, cacheSize, customLayer, clipTile, isTop, opacity, isLowText, showRegion, useThumbData, tileUrlTemplate } = props\r\n layer = new BMapGL.TileLayer({\r\n transform,\r\n png8,\r\n height,\r\n retry,\r\n retryTime,\r\n transparentPng,\r\n dataType,\r\n spanLevel,\r\n tileTypeName,\r\n cacheSize,\r\n customLayer,\r\n clipTile,\r\n isTop,\r\n opacity,\r\n isLowText,\r\n showRegion,\r\n useThumbData,\r\n tileUrlTemplate,\r\n } as any)\r\n initLayerOptions()\r\n visible && addTileLayer()\r\n startWatchProps()\r\n }\r\n\r\n init()\r\n\r\n onUnmounted(() => {\r\n if (layer) {\r\n mapInstance().removeTileLayer(layer)\r\n }\r\n })\r\n\r\n return () => <></>\r\n },\r\n})\r\n"],"names":["name","props","tileLayerProps","setup","mapInstance","useMapInstance","layer","setZIndex","zIndex","setBoundary","boundary","addBoundary","clearBoundary","setZIndexTop","zIndexTop","setTop","addTileLayer","getTilesUrl","loadRasterTileData","tileInfo","callback","key","getTileKey","handleImageLoad","image","handleError","box","BMapGL","Projection","tileToBoundRange","col","row","baseTileSize","zoom","x","y","z","img","HTMLCanvasElement","Image","crossOrigin","onload","onerror","src","toDataURL","HTMLImageElement","initLayerOptions","startWatchProps","watch","visible","n","removeTileLayer","init","transform","png8","height","retry","retryTime","transparentPng","dataType","spanLevel","tileTypeName","cacheSize","customLayer","clipTile","isTop","opacity","isLowText","showRegion","useThumbData","tileUrlTemplate","TileLayer","onUnmounted","_createVNode","_Fragment"],"mappings":"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"}
@@ -111,9 +111,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
111
111
  readonly maxZoom: number;
112
112
  readonly visible: boolean;
113
113
  readonly useThumbData: boolean;
114
- readonly extentCRSIsWGS84: boolean;
115
114
  readonly zIndex: number;
116
115
  readonly zIndexTop: boolean;
116
+ readonly extentCRSIsWGS84: boolean;
117
117
  readonly tms: boolean;
118
118
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
119
119
  export default _default;
package/lib/components.js CHANGED
@@ -4,6 +4,7 @@ var configProvider = require('./config-provider/src/config-provider.js');
4
4
  var configProviderProps = require('./config-provider/src/config-provider-props.js');
5
5
  var constants = require('./config-provider/src/constants.js');
6
6
  var tile = require('./layer/tile/src/tile.js');
7
+ var tileProps = require('./layer/tile/src/tile-props.js');
7
8
  var xyz = require('./layer/xyz/src/xyz.js');
8
9
  var xyzProps = require('./layer/xyz/src/xyz-props.js');
9
10
  var constants$1 = require('./map/src/constants.js');
@@ -19,6 +20,7 @@ exports.BConfigProvider = configProvider;
19
20
  exports.configProviderProps = configProviderProps.configProviderProps;
20
21
  exports.configProviderInjectionKey = constants.configProviderInjectionKey;
21
22
  exports.BTileLayer = tile;
23
+ exports.tileLayerProps = tileProps.tileLayerProps;
22
24
  exports.BXyzLayer = xyz;
23
25
  exports.xyzLayerProps = xyzProps.xyzLayerProps;
24
26
  exports.mapInjectionKey = constants$1.mapInjectionKey;
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/lib/index.js CHANGED
@@ -5,6 +5,7 @@ var configProvider = require('./config-provider/src/config-provider.js');
5
5
  var configProviderProps = require('./config-provider/src/config-provider-props.js');
6
6
  var constants = require('./config-provider/src/constants.js');
7
7
  var tile = require('./layer/tile/src/tile.js');
8
+ var tileProps = require('./layer/tile/src/tile-props.js');
8
9
  var xyz = require('./layer/xyz/src/xyz.js');
9
10
  var xyzProps = require('./layer/xyz/src/xyz-props.js');
10
11
  var constants$1 = require('./map/src/constants.js');
@@ -21,6 +22,7 @@ exports.BConfigProvider = configProvider;
21
22
  exports.configProviderProps = configProviderProps.configProviderProps;
22
23
  exports.configProviderInjectionKey = constants.configProviderInjectionKey;
23
24
  exports.BTileLayer = tile;
25
+ exports.tileLayerProps = tileProps.tileLayerProps;
24
26
  exports.BXyzLayer = xyz;
25
27
  exports.xyzLayerProps = xyzProps.xyzLayerProps;
26
28
  exports.mapInjectionKey = constants$1.mapInjectionKey;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1,3 @@
1
1
  export { default as BTileLayer } from './src/tile';
2
+ export { tileLayerProps } from './src/tile-props';
3
+ export type { GetTilesUrlFn, TileLayerProps } from './src/tile-props';
@@ -1,8 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var tile = require('./src/tile.js');
4
+ var tileProps = require('./src/tile-props.js');
4
5
 
5
6
 
6
7
 
7
8
  exports.BTileLayer = tile;
9
+ exports.tileLayerProps = tileProps.tileLayerProps;
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,60 @@
1
+ import type { PropType } from 'vue';
2
+ import type { ExtractPublicPropTypes } from '../../../_utils';
3
+ export type GetTilesUrlFn = (tile: {
4
+ x: number;
5
+ y: number;
6
+ z: number;
7
+ }, boundRange: any, cb: (image: string | HTMLImageElement | HTMLCanvasElement) => void) => void;
8
+ export declare const tileLayerProps: {
9
+ readonly visible: {
10
+ readonly type: BooleanConstructor;
11
+ readonly default: true;
12
+ };
13
+ readonly transform: PropType<{
14
+ source: string;
15
+ target: string;
16
+ }>;
17
+ readonly png8: BooleanConstructor;
18
+ readonly height: NumberConstructor;
19
+ readonly retry: {
20
+ readonly type: BooleanConstructor;
21
+ readonly default: undefined;
22
+ };
23
+ readonly retryTime: NumberConstructor;
24
+ readonly transparentPng: {
25
+ readonly type: BooleanConstructor;
26
+ readonly default: true;
27
+ };
28
+ readonly dataType: NumberConstructor;
29
+ readonly spanLevel: {
30
+ readonly type: NumberConstructor;
31
+ readonly default: 0;
32
+ };
33
+ readonly tileTypeName: StringConstructor;
34
+ readonly cacheSize: {
35
+ readonly type: NumberConstructor;
36
+ readonly default: 256;
37
+ };
38
+ readonly customLayer: {
39
+ readonly type: BooleanConstructor;
40
+ readonly default: undefined;
41
+ };
42
+ readonly clipTile: {
43
+ readonly type: BooleanConstructor;
44
+ readonly default: undefined;
45
+ };
46
+ readonly isTop: BooleanConstructor;
47
+ readonly opacity: {
48
+ readonly type: NumberConstructor;
49
+ readonly default: 1;
50
+ };
51
+ readonly isLowText: BooleanConstructor;
52
+ readonly boundary: PropType<string[] | string>;
53
+ readonly showRegion: StringConstructor;
54
+ readonly useThumbData: BooleanConstructor;
55
+ readonly zIndex: NumberConstructor;
56
+ readonly zIndexTop: BooleanConstructor;
57
+ readonly tileUrlTemplate: StringConstructor;
58
+ readonly getTilesUrl: PropType<GetTilesUrlFn>;
59
+ };
60
+ export type TileLayerProps = ExtractPublicPropTypes<typeof tileLayerProps>;
@@ -1,3 +1,54 @@
1
1
  'use strict';
2
2
 
3
+ const tileLayerProps = {
4
+ visible: {
5
+ type: Boolean,
6
+ default: true
7
+ },
8
+ transform: Object,
9
+ png8: Boolean,
10
+ height: Number,
11
+ retry: {
12
+ type: Boolean,
13
+ default: void 0
14
+ },
15
+ retryTime: Number,
16
+ transparentPng: {
17
+ type: Boolean,
18
+ default: true
19
+ },
20
+ dataType: Number,
21
+ spanLevel: {
22
+ type: Number,
23
+ default: 0
24
+ },
25
+ tileTypeName: String,
26
+ cacheSize: {
27
+ type: Number,
28
+ default: 256
29
+ },
30
+ customLayer: {
31
+ type: Boolean,
32
+ default: void 0
33
+ },
34
+ clipTile: {
35
+ type: Boolean,
36
+ default: void 0
37
+ },
38
+ isTop: Boolean,
39
+ opacity: {
40
+ type: Number,
41
+ default: 1
42
+ },
43
+ isLowText: Boolean,
44
+ boundary: Array,
45
+ showRegion: String,
46
+ useThumbData: Boolean,
47
+ zIndex: Number,
48
+ zIndexTop: Boolean,
49
+ tileUrlTemplate: String,
50
+ getTilesUrl: Function
51
+ };
52
+
53
+ exports.tileLayerProps = tileLayerProps;
3
54
  //# sourceMappingURL=tile-props.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tile-props.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"tile-props.js","sources":["../../../../src/layer/tile/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/layer/tile/src/tile-props.ts"],"sourcesContent":["import type { PropType } from 'vue'\r\nimport type { ExtractPublicPropTypes } from '../../../_utils'\r\n\r\nexport type GetTilesUrlFn = (tile: { x: number, y: number, z: number }, boundRange: any, cb: (image: string | HTMLImageElement | HTMLCanvasElement) => void) => void\r\n\r\nexport const tileLayerProps = {\r\n visible: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n transform: Object as PropType<{ source: string, target: string }>,\r\n png8: Boolean,\r\n height: Number,\r\n retry: {\r\n type: Boolean,\r\n default: undefined,\r\n },\r\n retryTime: Number,\r\n transparentPng: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n dataType: Number,\r\n spanLevel: {\r\n type: Number,\r\n default: 0,\r\n },\r\n tileTypeName: String,\r\n cacheSize: {\r\n type: Number,\r\n default: 256,\r\n },\r\n customLayer: {\r\n type: Boolean,\r\n default: undefined,\r\n },\r\n clipTile: {\r\n type: Boolean,\r\n default: undefined,\r\n },\r\n isTop: Boolean,\r\n opacity: {\r\n type: Number,\r\n default: 1,\r\n },\r\n isLowText: Boolean,\r\n boundary: Array as PropType<string[] | string>,\r\n showRegion: String,\r\n useThumbData: Boolean,\r\n zIndex: Number,\r\n zIndexTop: Boolean,\r\n tileUrlTemplate: String,\r\n getTilesUrl: Function as PropType<GetTilesUrlFn>,\r\n} as const\r\n\r\nexport type TileLayerProps = ExtractPublicPropTypes<typeof tileLayerProps>\r\n"],"names":[],"mappings":";;AAKO,MAAM,cAAA,GAAiB;AAAA,EAC5B,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,SAAA,EAAW,MAAA;AAAA,EACX,IAAA,EAAM,OAAA;AAAA,EACN,MAAA,EAAQ,MAAA;AAAA,EACR,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,SAAA,EAAW,MAAA;AAAA,EACX,cAAA,EAAgB;AAAA,IACd,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,QAAA,EAAU,MAAA;AAAA,EACV,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,YAAA,EAAc,MAAA;AAAA,EACd,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,WAAA,EAAa;AAAA,IACX,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,KAAA,EAAO,OAAA;AAAA,EACP,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACV;AAAA,EACD,SAAA,EAAW,OAAA;AAAA,EACX,QAAA,EAAU,KAAA;AAAA,EACV,UAAA,EAAY,MAAA;AAAA,EACZ,YAAA,EAAc,OAAA;AAAA,EACd,MAAA,EAAQ,MAAA;AAAA,EACR,SAAA,EAAW,OAAA;AAAA,EACX,eAAA,EAAiB,MAAA;AAAA,EACjB,WAAA,EAAa;;;;;"}
@@ -1,2 +1,118 @@
1
- declare const _default: import("vue").DefineComponent<{}, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
1
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
+ readonly visible: {
3
+ readonly type: BooleanConstructor;
4
+ readonly default: true;
5
+ };
6
+ readonly transform: import("vue").PropType<{
7
+ source: string;
8
+ target: string;
9
+ }>;
10
+ readonly png8: BooleanConstructor;
11
+ readonly height: NumberConstructor;
12
+ readonly retry: {
13
+ readonly type: BooleanConstructor;
14
+ readonly default: undefined;
15
+ };
16
+ readonly retryTime: NumberConstructor;
17
+ readonly transparentPng: {
18
+ readonly type: BooleanConstructor;
19
+ readonly default: true;
20
+ };
21
+ readonly dataType: NumberConstructor;
22
+ readonly spanLevel: {
23
+ readonly type: NumberConstructor;
24
+ readonly default: 0;
25
+ };
26
+ readonly tileTypeName: StringConstructor;
27
+ readonly cacheSize: {
28
+ readonly type: NumberConstructor;
29
+ readonly default: 256;
30
+ };
31
+ readonly customLayer: {
32
+ readonly type: BooleanConstructor;
33
+ readonly default: undefined;
34
+ };
35
+ readonly clipTile: {
36
+ readonly type: BooleanConstructor;
37
+ readonly default: undefined;
38
+ };
39
+ readonly isTop: BooleanConstructor;
40
+ readonly opacity: {
41
+ readonly type: NumberConstructor;
42
+ readonly default: 1;
43
+ };
44
+ readonly isLowText: BooleanConstructor;
45
+ readonly boundary: import("vue").PropType<string[] | string>;
46
+ readonly showRegion: StringConstructor;
47
+ readonly useThumbData: BooleanConstructor;
48
+ readonly zIndex: NumberConstructor;
49
+ readonly zIndexTop: BooleanConstructor;
50
+ readonly tileUrlTemplate: StringConstructor;
51
+ readonly getTilesUrl: import("vue").PropType<import("./tile-props").GetTilesUrlFn>;
52
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
53
+ readonly visible: {
54
+ readonly type: BooleanConstructor;
55
+ readonly default: true;
56
+ };
57
+ readonly transform: import("vue").PropType<{
58
+ source: string;
59
+ target: string;
60
+ }>;
61
+ readonly png8: BooleanConstructor;
62
+ readonly height: NumberConstructor;
63
+ readonly retry: {
64
+ readonly type: BooleanConstructor;
65
+ readonly default: undefined;
66
+ };
67
+ readonly retryTime: NumberConstructor;
68
+ readonly transparentPng: {
69
+ readonly type: BooleanConstructor;
70
+ readonly default: true;
71
+ };
72
+ readonly dataType: NumberConstructor;
73
+ readonly spanLevel: {
74
+ readonly type: NumberConstructor;
75
+ readonly default: 0;
76
+ };
77
+ readonly tileTypeName: StringConstructor;
78
+ readonly cacheSize: {
79
+ readonly type: NumberConstructor;
80
+ readonly default: 256;
81
+ };
82
+ readonly customLayer: {
83
+ readonly type: BooleanConstructor;
84
+ readonly default: undefined;
85
+ };
86
+ readonly clipTile: {
87
+ readonly type: BooleanConstructor;
88
+ readonly default: undefined;
89
+ };
90
+ readonly isTop: BooleanConstructor;
91
+ readonly opacity: {
92
+ readonly type: NumberConstructor;
93
+ readonly default: 1;
94
+ };
95
+ readonly isLowText: BooleanConstructor;
96
+ readonly boundary: import("vue").PropType<string[] | string>;
97
+ readonly showRegion: StringConstructor;
98
+ readonly useThumbData: BooleanConstructor;
99
+ readonly zIndex: NumberConstructor;
100
+ readonly zIndexTop: BooleanConstructor;
101
+ readonly tileUrlTemplate: StringConstructor;
102
+ readonly getTilesUrl: import("vue").PropType<import("./tile-props").GetTilesUrlFn>;
103
+ }>> & Readonly<{}>, {
104
+ readonly visible: boolean;
105
+ readonly png8: boolean;
106
+ readonly retry: boolean;
107
+ readonly transparentPng: boolean;
108
+ readonly spanLevel: number;
109
+ readonly cacheSize: number;
110
+ readonly customLayer: boolean;
111
+ readonly clipTile: boolean;
112
+ readonly isTop: boolean;
113
+ readonly opacity: number;
114
+ readonly isLowText: boolean;
115
+ readonly useThumbData: boolean;
116
+ readonly zIndexTop: boolean;
117
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
118
  export default _default;
@@ -1,10 +1,132 @@
1
1
  'use strict';
2
2
 
3
3
  var vue = require('vue');
4
+ var tileProps = require('./tile-props.js');
5
+ var useMapInstance = require('../../../_mixins/use-map-instance.js');
4
6
 
5
7
  var tile = /* @__PURE__ */ vue.defineComponent({
6
8
  name: "TileLayer",
7
- setup() {
9
+ props: tileProps.tileLayerProps,
10
+ setup(props) {
11
+ const mapInstance = useMapInstance();
12
+ let layer = null;
13
+ const setZIndex = (zIndex) => {
14
+ layer === null || layer === void 0 ? void 0 : layer.setZIndex(zIndex);
15
+ };
16
+ const setBoundary = (boundary) => {
17
+ boundary ? layer === null || layer === void 0 ? void 0 : layer.addBoundary(boundary) : layer === null || layer === void 0 ? void 0 : layer.clearBoundary();
18
+ };
19
+ const setZIndexTop = (zIndexTop) => {
20
+ layer === null || layer === void 0 ? void 0 : layer.setTop(zIndexTop);
21
+ };
22
+ const addTileLayer = () => {
23
+ const {
24
+ getTilesUrl
25
+ } = props;
26
+ if (!layer) return;
27
+ if (getTilesUrl) {
28
+ mapInstance().addTileLayer(layer);
29
+ layer.loadRasterTileData = function(tileInfo, callback) {
30
+ const key = this.getTileKey(tileInfo);
31
+ const handleImageLoad = (image) => {
32
+ image.tileInfo = tileInfo;
33
+ callback && callback(image, key);
34
+ };
35
+ const handleError = () => callback && callback(null, key);
36
+ const box = BMapGL.Projection.tileToBoundRange({
37
+ col: tileInfo.col,
38
+ row: tileInfo.row,
39
+ baseTileSize: tileInfo.baseTileSize,
40
+ zoom: tileInfo.zoom
41
+ });
42
+ getTilesUrl({
43
+ x: tileInfo.col,
44
+ y: tileInfo.row,
45
+ z: tileInfo.zoom
46
+ }, box, (img) => {
47
+ if (typeof img === "string" || img instanceof HTMLCanvasElement) {
48
+ const image = new Image();
49
+ image.crossOrigin = "anonymous";
50
+ image.onload = () => handleImageLoad(image);
51
+ image.onerror = handleError;
52
+ image.src = typeof img === "string" ? img : img.toDataURL();
53
+ } else if (img instanceof HTMLImageElement) {
54
+ handleImageLoad(img);
55
+ } else {
56
+ handleError();
57
+ }
58
+ });
59
+ };
60
+ } else {
61
+ mapInstance().addTileLayer(layer);
62
+ }
63
+ };
64
+ const initLayerOptions = () => {
65
+ const {
66
+ zIndex,
67
+ boundary
68
+ } = props;
69
+ setBoundary(boundary);
70
+ setZIndex(zIndex);
71
+ };
72
+ const startWatchProps = () => {
73
+ vue.watch(() => props.zIndex, setZIndex);
74
+ vue.watch(() => props.boundary, setBoundary);
75
+ vue.watch(() => props.zIndexTop, setZIndexTop);
76
+ vue.watch(() => props.visible, (n) => n ? addTileLayer() : mapInstance().removeTileLayer(layer));
77
+ };
78
+ const init = () => {
79
+ const {
80
+ visible,
81
+ transform,
82
+ png8,
83
+ height,
84
+ retry,
85
+ retryTime,
86
+ transparentPng,
87
+ dataType,
88
+ spanLevel,
89
+ tileTypeName,
90
+ cacheSize,
91
+ customLayer,
92
+ clipTile,
93
+ isTop,
94
+ opacity,
95
+ isLowText,
96
+ showRegion,
97
+ useThumbData,
98
+ tileUrlTemplate
99
+ } = props;
100
+ layer = new BMapGL.TileLayer({
101
+ transform,
102
+ png8,
103
+ height,
104
+ retry,
105
+ retryTime,
106
+ transparentPng,
107
+ dataType,
108
+ spanLevel,
109
+ tileTypeName,
110
+ cacheSize,
111
+ customLayer,
112
+ clipTile,
113
+ isTop,
114
+ opacity,
115
+ isLowText,
116
+ showRegion,
117
+ useThumbData,
118
+ tileUrlTemplate
119
+ });
120
+ initLayerOptions();
121
+ visible && addTileLayer();
122
+ startWatchProps();
123
+ };
124
+ init();
125
+ vue.onUnmounted(() => {
126
+ if (layer) {
127
+ mapInstance().removeTileLayer(layer);
128
+ }
129
+ });
8
130
  return () => vue.createVNode(vue.Fragment, null, null);
9
131
  }
10
132
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tile.js","sources":["../../../../src/layer/tile/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/layer/tile/src/tile.tsx"],"sourcesContent":["import { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'TileLayer',\r\n setup() {\r\n return () => <></>\r\n },\r\n})\r\n"],"names":["name","setup","_createVNode","_Fragment"],"mappings":";;;;AAEA,+CAA+B;AAAA,EAC7BA,IAAAA,EAAM,WAAA;AAAA,EACNC,KAAAA,GAAK;AACH,IAAA,OAAO,MAAAC,eAAAA,CAAAC,YAAAA,EAAA,IAAA,EAAA,IAAA,CAAA;AAAA,EACT;AACD,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"tile.js","sources":["../../../../src/layer/tile/src/file:/D:/workspaces/personal-project/vue3-bmapgl/packages/vue3-bmapgl/src/layer/tile/src/tile.tsx"],"sourcesContent":["import { defineComponent, onUnmounted, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { tileLayerProps } from './tile-props'\r\n\r\nexport default defineComponent({\r\n name: 'TileLayer',\r\n props: tileLayerProps,\r\n setup(props) {\r\n const mapInstance = useMapInstance()\r\n\r\n let layer: BMapGL.TileLayer | null = null\r\n\r\n const setZIndex = (zIndex?: number) => {\r\n (layer as any)?.setZIndex(zIndex)\r\n }\r\n\r\n const setBoundary = (boundary?: string[] | string) => {\r\n boundary ? (layer as any)?.addBoundary(boundary) : (layer as any)?.clearBoundary()\r\n }\r\n\r\n const setZIndexTop = (zIndexTop?: boolean) => {\r\n (layer as any)?.setTop(zIndexTop)\r\n }\r\n\r\n const addTileLayer = () => {\r\n const { getTilesUrl } = props\r\n if (!layer)\r\n return\r\n if (getTilesUrl) {\r\n mapInstance().addTileLayer(layer)\r\n ;(layer as any).loadRasterTileData = function (tileInfo: any, callback: any) {\r\n const key = this.getTileKey(tileInfo)\r\n\r\n const handleImageLoad = (image: HTMLImageElement) => {\r\n (image as any).tileInfo = tileInfo\r\n callback && callback(image, key)\r\n }\r\n\r\n const handleError = () => callback && callback(null, key)\r\n\r\n const box = (BMapGL as any).Projection.tileToBoundRange({\r\n col: tileInfo.col,\r\n row: tileInfo.row,\r\n baseTileSize: tileInfo.baseTileSize,\r\n zoom: tileInfo.zoom,\r\n })\r\n\r\n getTilesUrl({ x: tileInfo.col, y: tileInfo.row, z: tileInfo.zoom }, box, (img) => {\r\n if (typeof img === 'string' || img instanceof HTMLCanvasElement) {\r\n const image = new Image()\r\n image.crossOrigin = 'anonymous'\r\n\r\n image.onload = () => handleImageLoad(image)\r\n image.onerror = handleError\r\n\r\n image.src = typeof img === 'string' ? img : img.toDataURL()\r\n } else if (img instanceof HTMLImageElement) {\r\n handleImageLoad(img)\r\n } else {\r\n handleError()\r\n }\r\n })\r\n }\r\n } else {\r\n mapInstance().addTileLayer(layer)\r\n }\r\n }\r\n\r\n const initLayerOptions = () => {\r\n const { zIndex, boundary } = props\r\n setBoundary(boundary)\r\n setZIndex(zIndex)\r\n }\r\n\r\n const startWatchProps = () => {\r\n watch(() => props.zIndex, setZIndex)\r\n watch(() => props.boundary, setBoundary)\r\n watch(() => props.zIndexTop, setZIndexTop)\r\n watch(() => props.visible, n => n ? addTileLayer() : mapInstance().removeTileLayer(layer!))\r\n }\r\n\r\n const init = () => {\r\n const { visible, transform, png8, height, retry, retryTime, transparentPng, dataType, spanLevel, tileTypeName, cacheSize, customLayer, clipTile, isTop, opacity, isLowText, showRegion, useThumbData, tileUrlTemplate } = props\r\n layer = new BMapGL.TileLayer({\r\n transform,\r\n png8,\r\n height,\r\n retry,\r\n retryTime,\r\n transparentPng,\r\n dataType,\r\n spanLevel,\r\n tileTypeName,\r\n cacheSize,\r\n customLayer,\r\n clipTile,\r\n isTop,\r\n opacity,\r\n isLowText,\r\n showRegion,\r\n useThumbData,\r\n tileUrlTemplate,\r\n } as any)\r\n initLayerOptions()\r\n visible && addTileLayer()\r\n startWatchProps()\r\n }\r\n\r\n init()\r\n\r\n onUnmounted(() => {\r\n if (layer) {\r\n mapInstance().removeTileLayer(layer)\r\n }\r\n })\r\n\r\n return () => <></>\r\n },\r\n})\r\n"],"names":["name","props","tileLayerProps","setup","mapInstance","useMapInstance","layer","setZIndex","zIndex","setBoundary","boundary","addBoundary","clearBoundary","setZIndexTop","zIndexTop","setTop","addTileLayer","getTilesUrl","loadRasterTileData","tileInfo","callback","key","getTileKey","handleImageLoad","image","handleError","box","BMapGL","Projection","tileToBoundRange","col","row","baseTileSize","zoom","x","y","z","img","HTMLCanvasElement","Image","crossOrigin","onload","onerror","src","toDataURL","HTMLImageElement","initLayerOptions","startWatchProps","watch","visible","n","removeTileLayer","init","transform","png8","height","retry","retryTime","transparentPng","dataType","spanLevel","tileTypeName","cacheSize","customLayer","clipTile","isTop","opacity","isLowText","showRegion","useThumbData","tileUrlTemplate","TileLayer","onUnmounted","_createVNode","_Fragment"],"mappings":"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"}
@@ -111,9 +111,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
111
111
  readonly maxZoom: number;
112
112
  readonly visible: boolean;
113
113
  readonly useThumbData: boolean;
114
- readonly extentCRSIsWGS84: boolean;
115
114
  readonly zIndex: number;
116
115
  readonly zIndexTop: boolean;
116
+ readonly extentCRSIsWGS84: boolean;
117
117
  readonly tms: boolean;
118
118
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
119
119
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spuermomonga/vue3-bmapgl",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "description": "Baidu Map GL encapsulation for Vue 3",
5
5
  "author": "SpuerMomonga <spuermomonga@qq.com>",
6
6
  "license": "MIT",