@spuermomonga/vue3-bmapgl 0.0.11 → 0.0.12
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 +98 -20
- package/dist/index.prod.js +1 -1
- package/es/layer/tile/index.d.ts +1 -1
- package/es/layer/tile/src/tile-props.d.ts +14 -2
- package/es/layer/tile/src/tile-props.mjs +1 -0
- package/es/layer/tile/src/tile-props.mjs.map +1 -1
- package/es/layer/tile/src/tile.d.ts +2 -0
- package/es/layer/tile/src/tile.mjs +97 -20
- package/es/layer/tile/src/tile.mjs.map +1 -1
- package/es/layer/xyz/src/xyz.d.ts +2 -2
- package/lib/layer/tile/index.d.ts +1 -1
- package/lib/layer/tile/src/tile-props.d.ts +14 -2
- package/lib/layer/tile/src/tile-props.js +1 -0
- package/lib/layer/tile/src/tile-props.js.map +1 -1
- package/lib/layer/tile/src/tile.d.ts +2 -0
- package/lib/layer/tile/src/tile.js +97 -20
- package/lib/layer/tile/src/tile.js.map +1 -1
- package/lib/layer/xyz/src/xyz.d.ts +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -399,6 +399,7 @@
|
|
|
399
399
|
zIndex: Number,
|
|
400
400
|
zIndexTop: Boolean,
|
|
401
401
|
tileUrlTemplate: String,
|
|
402
|
+
getTileUrl: Function,
|
|
402
403
|
getTilesUrl: Function
|
|
403
404
|
};
|
|
404
405
|
|
|
@@ -407,6 +408,8 @@
|
|
|
407
408
|
props: tileLayerProps,
|
|
408
409
|
setup(props) {
|
|
409
410
|
const mapInstance = useMapInstance();
|
|
411
|
+
let requestQueue = [];
|
|
412
|
+
let batchTimer;
|
|
410
413
|
let layer = null;
|
|
411
414
|
const setZIndex = (zIndex) => {
|
|
412
415
|
layer?.setZIndex(zIndex);
|
|
@@ -417,42 +420,117 @@
|
|
|
417
420
|
const setZIndexTop = (zIndexTop) => {
|
|
418
421
|
layer?.setTop(zIndexTop);
|
|
419
422
|
};
|
|
423
|
+
const loadImage = (request, img) => {
|
|
424
|
+
const handleLoad = (image) => {
|
|
425
|
+
image.tileInfo = request.tileInfo;
|
|
426
|
+
request.cb(image, request.key);
|
|
427
|
+
};
|
|
428
|
+
const handleError = () => request.cb(null, request.key);
|
|
429
|
+
if (typeof img === "string" || img instanceof HTMLCanvasElement) {
|
|
430
|
+
const image = new Image();
|
|
431
|
+
image.crossOrigin = "anonymous";
|
|
432
|
+
image.onload = () => handleLoad(image);
|
|
433
|
+
image.onerror = handleError;
|
|
434
|
+
image.src = typeof img === "string" ? img : img.toDataURL();
|
|
435
|
+
} else if (img instanceof HTMLImageElement) {
|
|
436
|
+
handleLoad(img);
|
|
437
|
+
} else {
|
|
438
|
+
handleError();
|
|
439
|
+
}
|
|
440
|
+
};
|
|
441
|
+
const processBatch = () => {
|
|
442
|
+
if (requestQueue.length === 0) return;
|
|
443
|
+
const {
|
|
444
|
+
getTilesUrl
|
|
445
|
+
} = props;
|
|
446
|
+
const batch = [...requestQueue];
|
|
447
|
+
requestQueue = [];
|
|
448
|
+
const tiles = batch.map(({
|
|
449
|
+
key,
|
|
450
|
+
tile,
|
|
451
|
+
boundRange
|
|
452
|
+
}) => ({
|
|
453
|
+
key,
|
|
454
|
+
tile,
|
|
455
|
+
boundRange
|
|
456
|
+
}));
|
|
457
|
+
getTilesUrl(tiles, (values) => {
|
|
458
|
+
for (const value of values) {
|
|
459
|
+
const index = batch.findIndex((item) => item.key === value.key);
|
|
460
|
+
if (index !== -1) {
|
|
461
|
+
const tiles2 = batch[index];
|
|
462
|
+
loadImage(tiles2, value.img);
|
|
463
|
+
batch.splice(index, 1);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
batch.forEach((tiles2) => {
|
|
467
|
+
tiles2.cb(null, tiles2.key);
|
|
468
|
+
});
|
|
469
|
+
});
|
|
470
|
+
};
|
|
471
|
+
const enqueue = (data) => {
|
|
472
|
+
const existing = requestQueue.find((item) => item.key === data.key);
|
|
473
|
+
if (existing) {
|
|
474
|
+
existing.cb(null, data.key);
|
|
475
|
+
existing.cb = data.cb;
|
|
476
|
+
} else {
|
|
477
|
+
requestQueue.push(data);
|
|
478
|
+
}
|
|
479
|
+
if (batchTimer) {
|
|
480
|
+
clearTimeout(batchTimer);
|
|
481
|
+
}
|
|
482
|
+
batchTimer = setTimeout(() => processBatch(), 50);
|
|
483
|
+
};
|
|
420
484
|
const addTileLayer = () => {
|
|
421
485
|
const {
|
|
486
|
+
getTileUrl,
|
|
422
487
|
getTilesUrl
|
|
423
488
|
} = props;
|
|
424
489
|
if (!layer) return;
|
|
425
|
-
if (
|
|
490
|
+
if (getTileUrl) {
|
|
426
491
|
mapInstance().addTileLayer(layer);
|
|
427
492
|
layer.loadRasterTileData = function(tileInfo, callback) {
|
|
428
493
|
const key = this.getTileKey(tileInfo);
|
|
429
|
-
const
|
|
430
|
-
image.tileInfo = tileInfo;
|
|
431
|
-
callback && callback(image, key);
|
|
432
|
-
};
|
|
433
|
-
const handleError = () => callback && callback(null, key);
|
|
434
|
-
const box = BMapGL.Projection.tileToBoundRange({
|
|
494
|
+
const boundRange = BMapGL.Projection.tileToBoundRange({
|
|
435
495
|
col: tileInfo.col,
|
|
436
496
|
row: tileInfo.row,
|
|
437
497
|
baseTileSize: tileInfo.baseTileSize,
|
|
438
498
|
zoom: tileInfo.zoom
|
|
439
499
|
});
|
|
440
|
-
|
|
500
|
+
getTileUrl({
|
|
441
501
|
x: tileInfo.col,
|
|
442
502
|
y: tileInfo.row,
|
|
443
503
|
z: tileInfo.zoom
|
|
444
|
-
},
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
504
|
+
}, boundRange, (img) => {
|
|
505
|
+
loadImage({
|
|
506
|
+
cb: callback,
|
|
507
|
+
boundRange,
|
|
508
|
+
key,
|
|
509
|
+
tileInfo
|
|
510
|
+
}, img);
|
|
511
|
+
});
|
|
512
|
+
};
|
|
513
|
+
} else if (getTilesUrl) {
|
|
514
|
+
mapInstance().addTileLayer(layer);
|
|
515
|
+
layer.loadRasterTileData = function(tileInfo, callback) {
|
|
516
|
+
const key = this.getTileKey(tileInfo);
|
|
517
|
+
const tile = {
|
|
518
|
+
x: tileInfo.col,
|
|
519
|
+
y: tileInfo.row,
|
|
520
|
+
z: tileInfo.zoom
|
|
521
|
+
};
|
|
522
|
+
const boundRange = BMapGL.Projection.tileToBoundRange({
|
|
523
|
+
col: tileInfo.col,
|
|
524
|
+
row: tileInfo.row,
|
|
525
|
+
baseTileSize: tileInfo.baseTileSize,
|
|
526
|
+
zoom: tileInfo.zoom
|
|
527
|
+
});
|
|
528
|
+
enqueue({
|
|
529
|
+
key,
|
|
530
|
+
tile,
|
|
531
|
+
boundRange,
|
|
532
|
+
cb: callback,
|
|
533
|
+
tileInfo
|
|
456
534
|
});
|
|
457
535
|
};
|
|
458
536
|
} else {
|
package/dist/index.prod.js
CHANGED
|
@@ -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 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});
|
|
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])},R=()=>{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:R}=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),R?.({map:p}),y.value=!0};return t.onMounted(()=>{t.watchEffect(()=>{"loaded"!==l?.value||y.value||t.nextTick(R)})}),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,getTileUrl:Function,getTilesUrl:Function};var b=t.defineComponent({name:"TileLayer",props:g,setup(e){const o=f();let a,n=[],l=null;const r=e=>{l?.setZIndex(e)},i=e=>{e?l?.addBoundary(e):l?.clearBoundary()},s=e=>{l?.setTop(e)},p=(e,t)=>{const o=t=>{t.tileInfo=e.tileInfo,e.cb(t,e.key)},a=()=>e.cb(null,e.key);if("string"==typeof t||t instanceof HTMLCanvasElement){const e=new Image;e.crossOrigin="anonymous",e.onload=()=>o(e),e.onerror=a,e.src="string"==typeof t?t:t.toDataURL()}else t instanceof HTMLImageElement?o(t):a()},d=t=>{const o=n.find(e=>e.key===t.key);o?(o.cb(null,t.key),o.cb=t.cb):n.push(t),a&&clearTimeout(a),a=setTimeout(()=>(()=>{if(0===n.length)return;const{getTilesUrl:t}=e,o=[...n];n=[];const a=o.map(({key:e,tile:t,boundRange:o})=>({key:e,tile:t,boundRange:o}));t(a,e=>{for(const t of e){const e=o.findIndex(e=>e.key===t.key);if(-1!==e){const a=o[e];p(a,t.img),o.splice(e,1)}}o.forEach(e=>{e.cb(null,e.key)})})})(),50)},m=()=>{const{getTileUrl:t,getTilesUrl:a}=e;l&&(t?(o().addTileLayer(l),l.loadRasterTileData=function(e,o){const a=this.getTileKey(e),n=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},n,t=>{p({cb:o,boundRange:n,key:a,tileInfo:e},t)})}):a?(o().addTileLayer(l),l.loadRasterTileData=function(e,t){const o=this.getTileKey(e),a={x:e.col,y:e.row,z:e.zoom},n=BMapGL.Projection.tileToBoundRange({col:e.col,row:e.row,baseTileSize:e.baseTileSize,zoom:e.zoom});d({key:o,tile:a,boundRange:n,cb:t,tileInfo:e})}):o().addTileLayer(l))};return(()=>{const{visible:a,transform:n,png8:p,height:d,retry:u,retryTime:c,transparentPng:y,dataType:f,spanLevel:g,tileTypeName:b,cacheSize:T,customLayer:v,clipTile:h,isTop:S,opacity:R,isLowText:B,showRegion:w,useThumbData:x,tileUrlTemplate:M}=e;l=new BMapGL.TileLayer({transform:n,png8:p,height:d,retry:u,retryTime:c,transparentPng:y,dataType:f,spanLevel:g,tileTypeName:b,cacheSize:T,customLayer:v,clipTile:h,isTop:S,opacity:R,isLowText:B,showRegion:w,useThumbData:x,tileUrlTemplate:M}),(()=>{const{zIndex:t,boundary:o}=e;i(o),r(t)})(),a&&m(),t.watch(()=>e.zIndex,r),t.watch(()=>e.boundary,i),t.watch(()=>e.zIndexTop,s),t.watch(()=>e.visible,e=>e?m():o().removeTileLayer(l))})(),t.onUnmounted(()=>{l&&o().removeTileLayer(l)}),()=>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)}}),R=t.defineComponent({name:"Sector",setup:()=>()=>t.createVNode(t.Fragment,null,null)});e.BConfigProvider=i,e.BMap=y,e.BPolygon=S,e.BSector=R,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/layer/tile/index.d.ts
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import type { PropType } from 'vue';
|
|
2
2
|
import type { ExtractPublicPropTypes } from '../../../_utils';
|
|
3
|
-
export
|
|
3
|
+
export interface Tile {
|
|
4
4
|
x: number;
|
|
5
5
|
y: number;
|
|
6
6
|
z: number;
|
|
7
|
-
}
|
|
7
|
+
}
|
|
8
|
+
export interface TileImg {
|
|
9
|
+
key: string;
|
|
10
|
+
img?: string | HTMLImageElement | HTMLCanvasElement;
|
|
11
|
+
}
|
|
12
|
+
export interface Tiles {
|
|
13
|
+
key: string;
|
|
14
|
+
tile: Tile;
|
|
15
|
+
boundRange: any;
|
|
16
|
+
}
|
|
17
|
+
export type GetTileUrlFn = (tile: Tile, boundRange: any, cb: (image?: string | HTMLImageElement | HTMLCanvasElement) => void) => void;
|
|
18
|
+
export type GetTilesUrlFn = (tiles: Tiles[], cb: (values: TileImg[]) => void) => void;
|
|
8
19
|
export declare const tileLayerProps: {
|
|
9
20
|
readonly visible: {
|
|
10
21
|
readonly type: BooleanConstructor;
|
|
@@ -55,6 +66,7 @@ export declare const tileLayerProps: {
|
|
|
55
66
|
readonly zIndex: NumberConstructor;
|
|
56
67
|
readonly zIndexTop: BooleanConstructor;
|
|
57
68
|
readonly tileUrlTemplate: StringConstructor;
|
|
69
|
+
readonly getTileUrl: PropType<GetTileUrlFn>;
|
|
58
70
|
readonly getTilesUrl: PropType<GetTilesUrlFn>;
|
|
59
71
|
};
|
|
60
72
|
export type TileLayerProps = ExtractPublicPropTypes<typeof tileLayerProps>;
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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 interface Tile {\r\n x: number\r\n y: number\r\n z: number\r\n}\r\n\r\nexport interface TileImg {\r\n key: string\r\n img?: string | HTMLImageElement | HTMLCanvasElement\r\n}\r\n\r\nexport interface Tiles {\r\n key: string\r\n tile: Tile\r\n boundRange: any\r\n}\r\n\r\nexport type GetTileUrlFn = (tile: Tile, boundRange: any, cb: (image?: string | HTMLImageElement | HTMLCanvasElement) => void) => void\r\nexport type GetTilesUrlFn = (tiles: Tiles[], cb: (values: TileImg[]) => 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 getTileUrl: Function as PropType<GetTileUrlFn>,\r\n getTilesUrl: Function as PropType<GetTilesUrlFn>,\r\n} as const\r\n\r\nexport type TileLayerProps = ExtractPublicPropTypes<typeof tileLayerProps>\r\n"],"names":[],"mappings":"AAuBO,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,UAAA,EAAY,QAAA;AAAA,EACZ,WAAA,EAAa;;;;;"}
|
|
@@ -48,6 +48,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
48
48
|
readonly zIndex: NumberConstructor;
|
|
49
49
|
readonly zIndexTop: BooleanConstructor;
|
|
50
50
|
readonly tileUrlTemplate: StringConstructor;
|
|
51
|
+
readonly getTileUrl: import("vue").PropType<import("./tile-props").GetTileUrlFn>;
|
|
51
52
|
readonly getTilesUrl: import("vue").PropType<import("./tile-props").GetTilesUrlFn>;
|
|
52
53
|
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
53
54
|
readonly visible: {
|
|
@@ -99,6 +100,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
99
100
|
readonly zIndex: NumberConstructor;
|
|
100
101
|
readonly zIndexTop: BooleanConstructor;
|
|
101
102
|
readonly tileUrlTemplate: StringConstructor;
|
|
103
|
+
readonly getTileUrl: import("vue").PropType<import("./tile-props").GetTileUrlFn>;
|
|
102
104
|
readonly getTilesUrl: import("vue").PropType<import("./tile-props").GetTilesUrlFn>;
|
|
103
105
|
}>> & Readonly<{}>, {
|
|
104
106
|
readonly visible: boolean;
|
|
@@ -7,6 +7,8 @@ var tile = /* @__PURE__ */ defineComponent({
|
|
|
7
7
|
props: tileLayerProps,
|
|
8
8
|
setup(props) {
|
|
9
9
|
const mapInstance = useMapInstance();
|
|
10
|
+
let requestQueue = [];
|
|
11
|
+
let batchTimer;
|
|
10
12
|
let layer = null;
|
|
11
13
|
const setZIndex = (zIndex) => {
|
|
12
14
|
layer === null || layer === void 0 ? void 0 : layer.setZIndex(zIndex);
|
|
@@ -17,42 +19,117 @@ var tile = /* @__PURE__ */ defineComponent({
|
|
|
17
19
|
const setZIndexTop = (zIndexTop) => {
|
|
18
20
|
layer === null || layer === void 0 ? void 0 : layer.setTop(zIndexTop);
|
|
19
21
|
};
|
|
22
|
+
const loadImage = (request, img) => {
|
|
23
|
+
const handleLoad = (image) => {
|
|
24
|
+
image.tileInfo = request.tileInfo;
|
|
25
|
+
request.cb(image, request.key);
|
|
26
|
+
};
|
|
27
|
+
const handleError = () => request.cb(null, request.key);
|
|
28
|
+
if (typeof img === "string" || img instanceof HTMLCanvasElement) {
|
|
29
|
+
const image = new Image();
|
|
30
|
+
image.crossOrigin = "anonymous";
|
|
31
|
+
image.onload = () => handleLoad(image);
|
|
32
|
+
image.onerror = handleError;
|
|
33
|
+
image.src = typeof img === "string" ? img : img.toDataURL();
|
|
34
|
+
} else if (img instanceof HTMLImageElement) {
|
|
35
|
+
handleLoad(img);
|
|
36
|
+
} else {
|
|
37
|
+
handleError();
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const processBatch = () => {
|
|
41
|
+
if (requestQueue.length === 0) return;
|
|
42
|
+
const {
|
|
43
|
+
getTilesUrl
|
|
44
|
+
} = props;
|
|
45
|
+
const batch = [...requestQueue];
|
|
46
|
+
requestQueue = [];
|
|
47
|
+
const tiles = batch.map(({
|
|
48
|
+
key,
|
|
49
|
+
tile,
|
|
50
|
+
boundRange
|
|
51
|
+
}) => ({
|
|
52
|
+
key,
|
|
53
|
+
tile,
|
|
54
|
+
boundRange
|
|
55
|
+
}));
|
|
56
|
+
getTilesUrl(tiles, (values) => {
|
|
57
|
+
for (const value of values) {
|
|
58
|
+
const index = batch.findIndex((item) => item.key === value.key);
|
|
59
|
+
if (index !== -1) {
|
|
60
|
+
const tiles2 = batch[index];
|
|
61
|
+
loadImage(tiles2, value.img);
|
|
62
|
+
batch.splice(index, 1);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
batch.forEach((tiles2) => {
|
|
66
|
+
tiles2.cb(null, tiles2.key);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
const enqueue = (data) => {
|
|
71
|
+
const existing = requestQueue.find((item) => item.key === data.key);
|
|
72
|
+
if (existing) {
|
|
73
|
+
existing.cb(null, data.key);
|
|
74
|
+
existing.cb = data.cb;
|
|
75
|
+
} else {
|
|
76
|
+
requestQueue.push(data);
|
|
77
|
+
}
|
|
78
|
+
if (batchTimer) {
|
|
79
|
+
clearTimeout(batchTimer);
|
|
80
|
+
}
|
|
81
|
+
batchTimer = setTimeout(() => processBatch(), 50);
|
|
82
|
+
};
|
|
20
83
|
const addTileLayer = () => {
|
|
21
84
|
const {
|
|
85
|
+
getTileUrl,
|
|
22
86
|
getTilesUrl
|
|
23
87
|
} = props;
|
|
24
88
|
if (!layer) return;
|
|
25
|
-
if (
|
|
89
|
+
if (getTileUrl) {
|
|
26
90
|
mapInstance().addTileLayer(layer);
|
|
27
91
|
layer.loadRasterTileData = function(tileInfo, callback) {
|
|
28
92
|
const key = this.getTileKey(tileInfo);
|
|
29
|
-
const
|
|
30
|
-
image.tileInfo = tileInfo;
|
|
31
|
-
callback && callback(image, key);
|
|
32
|
-
};
|
|
33
|
-
const handleError = () => callback && callback(null, key);
|
|
34
|
-
const box = BMapGL.Projection.tileToBoundRange({
|
|
93
|
+
const boundRange = BMapGL.Projection.tileToBoundRange({
|
|
35
94
|
col: tileInfo.col,
|
|
36
95
|
row: tileInfo.row,
|
|
37
96
|
baseTileSize: tileInfo.baseTileSize,
|
|
38
97
|
zoom: tileInfo.zoom
|
|
39
98
|
});
|
|
40
|
-
|
|
99
|
+
getTileUrl({
|
|
41
100
|
x: tileInfo.col,
|
|
42
101
|
y: tileInfo.row,
|
|
43
102
|
z: tileInfo.zoom
|
|
44
|
-
},
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
103
|
+
}, boundRange, (img) => {
|
|
104
|
+
loadImage({
|
|
105
|
+
cb: callback,
|
|
106
|
+
boundRange,
|
|
107
|
+
key,
|
|
108
|
+
tileInfo
|
|
109
|
+
}, img);
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
} else if (getTilesUrl) {
|
|
113
|
+
mapInstance().addTileLayer(layer);
|
|
114
|
+
layer.loadRasterTileData = function(tileInfo, callback) {
|
|
115
|
+
const key = this.getTileKey(tileInfo);
|
|
116
|
+
const tile = {
|
|
117
|
+
x: tileInfo.col,
|
|
118
|
+
y: tileInfo.row,
|
|
119
|
+
z: tileInfo.zoom
|
|
120
|
+
};
|
|
121
|
+
const boundRange = BMapGL.Projection.tileToBoundRange({
|
|
122
|
+
col: tileInfo.col,
|
|
123
|
+
row: tileInfo.row,
|
|
124
|
+
baseTileSize: tileInfo.baseTileSize,
|
|
125
|
+
zoom: tileInfo.zoom
|
|
126
|
+
});
|
|
127
|
+
enqueue({
|
|
128
|
+
key,
|
|
129
|
+
tile,
|
|
130
|
+
boundRange,
|
|
131
|
+
cb: callback,
|
|
132
|
+
tileInfo
|
|
56
133
|
});
|
|
57
134
|
};
|
|
58
135
|
} else {
|
|
@@ -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, 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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"}
|
|
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 type { Tiles } from './tile-props'\r\nimport { defineComponent, onUnmounted, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { tileLayerProps } from './tile-props'\r\n\r\ninterface TileRequest extends Partial<Tiles> {\r\n cb: any\r\n tileInfo: any\r\n}\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 requestQueue: TileRequest[] = []\r\n\r\n let batchTimer: number\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 loadImage = (request: TileRequest, img?: string | HTMLImageElement | HTMLCanvasElement) => {\r\n const handleLoad = (image: HTMLImageElement) => {\r\n (image as any).tileInfo = request.tileInfo\r\n request.cb(image, request.key)\r\n }\r\n\r\n const handleError = () => request.cb(null, request.key)\r\n\r\n if (typeof img === 'string' || img instanceof HTMLCanvasElement) {\r\n const image = new Image()\r\n image.crossOrigin = 'anonymous'\r\n image.onload = () => handleLoad(image)\r\n image.onerror = handleError\r\n image.src = typeof img === 'string' ? img : img.toDataURL()\r\n } else if (img instanceof HTMLImageElement) {\r\n handleLoad(img)\r\n } else {\r\n handleError()\r\n }\r\n }\r\n\r\n const processBatch = () => {\r\n if (requestQueue.length === 0)\r\n return\r\n\r\n const { getTilesUrl } = props\r\n\r\n const batch = [...requestQueue]\r\n requestQueue = []\r\n\r\n const tiles = batch.map(({ key, tile, boundRange }) => ({ key, tile, boundRange }))\r\n getTilesUrl!(tiles as any, (values) => {\r\n for (const value of values) {\r\n const index = batch.findIndex(item => item.key === value.key)\r\n if (index !== -1) {\r\n const tiles = batch[index]\r\n loadImage(tiles, value.img)\r\n batch.splice(index, 1)\r\n }\r\n }\r\n\r\n batch.forEach((tiles) => {\r\n tiles.cb(null, tiles.key)\r\n })\r\n })\r\n }\r\n\r\n const enqueue = (data: TileRequest) => {\r\n const existing = requestQueue.find(item => item.key === data.key)\r\n if (existing) {\r\n existing.cb(null, data.key)\r\n existing.cb = data.cb\r\n } else {\r\n requestQueue.push(data)\r\n }\r\n\r\n if (batchTimer) {\r\n clearTimeout(batchTimer)\r\n }\r\n batchTimer = setTimeout(() => processBatch(), 50)\r\n }\r\n\r\n const addTileLayer = () => {\r\n const { getTileUrl, getTilesUrl } = props\r\n if (!layer)\r\n return\r\n if (getTileUrl) {\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 boundRange = (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 getTileUrl({ x: tileInfo.col, y: tileInfo.row, z: tileInfo.zoom }, boundRange, (img) => {\r\n loadImage({ cb: callback, boundRange, key, tileInfo }, img)\r\n })\r\n }\r\n } else 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 tile = { x: tileInfo.col, y: tileInfo.row, z: tileInfo.zoom }\r\n const boundRange = (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 enqueue({ key, tile, boundRange, cb: callback, tileInfo })\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","requestQueue","batchTimer","layer","setZIndex","zIndex","setBoundary","boundary","addBoundary","clearBoundary","setZIndexTop","zIndexTop","setTop","loadImage","request","img","handleLoad","image","tileInfo","cb","key","handleError","HTMLCanvasElement","Image","crossOrigin","onload","onerror","src","toDataURL","HTMLImageElement","processBatch","length","getTilesUrl","batch","tiles","map","tile","boundRange","values","value","index","findIndex","item","splice","forEach","enqueue","data","existing","find","push","clearTimeout","setTimeout","addTileLayer","getTileUrl","loadRasterTileData","callback","getTileKey","BMapGL","Projection","tileToBoundRange","col","row","baseTileSize","zoom","x","y","z","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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"}
|
|
@@ -107,12 +107,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
107
107
|
readonly default: false;
|
|
108
108
|
};
|
|
109
109
|
}>> & Readonly<{}>, {
|
|
110
|
-
readonly minZoom: number;
|
|
111
|
-
readonly maxZoom: number;
|
|
112
110
|
readonly visible: boolean;
|
|
113
111
|
readonly useThumbData: boolean;
|
|
114
112
|
readonly zIndex: number;
|
|
115
113
|
readonly zIndexTop: boolean;
|
|
114
|
+
readonly minZoom: number;
|
|
115
|
+
readonly maxZoom: number;
|
|
116
116
|
readonly extentCRSIsWGS84: boolean;
|
|
117
117
|
readonly tms: boolean;
|
|
118
118
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import type { PropType } from 'vue';
|
|
2
2
|
import type { ExtractPublicPropTypes } from '../../../_utils';
|
|
3
|
-
export
|
|
3
|
+
export interface Tile {
|
|
4
4
|
x: number;
|
|
5
5
|
y: number;
|
|
6
6
|
z: number;
|
|
7
|
-
}
|
|
7
|
+
}
|
|
8
|
+
export interface TileImg {
|
|
9
|
+
key: string;
|
|
10
|
+
img?: string | HTMLImageElement | HTMLCanvasElement;
|
|
11
|
+
}
|
|
12
|
+
export interface Tiles {
|
|
13
|
+
key: string;
|
|
14
|
+
tile: Tile;
|
|
15
|
+
boundRange: any;
|
|
16
|
+
}
|
|
17
|
+
export type GetTileUrlFn = (tile: Tile, boundRange: any, cb: (image?: string | HTMLImageElement | HTMLCanvasElement) => void) => void;
|
|
18
|
+
export type GetTilesUrlFn = (tiles: Tiles[], cb: (values: TileImg[]) => void) => void;
|
|
8
19
|
export declare const tileLayerProps: {
|
|
9
20
|
readonly visible: {
|
|
10
21
|
readonly type: BooleanConstructor;
|
|
@@ -55,6 +66,7 @@ export declare const tileLayerProps: {
|
|
|
55
66
|
readonly zIndex: NumberConstructor;
|
|
56
67
|
readonly zIndexTop: BooleanConstructor;
|
|
57
68
|
readonly tileUrlTemplate: StringConstructor;
|
|
69
|
+
readonly getTileUrl: PropType<GetTileUrlFn>;
|
|
58
70
|
readonly getTilesUrl: PropType<GetTilesUrlFn>;
|
|
59
71
|
};
|
|
60
72
|
export type TileLayerProps = ExtractPublicPropTypes<typeof tileLayerProps>;
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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 interface Tile {\r\n x: number\r\n y: number\r\n z: number\r\n}\r\n\r\nexport interface TileImg {\r\n key: string\r\n img?: string | HTMLImageElement | HTMLCanvasElement\r\n}\r\n\r\nexport interface Tiles {\r\n key: string\r\n tile: Tile\r\n boundRange: any\r\n}\r\n\r\nexport type GetTileUrlFn = (tile: Tile, boundRange: any, cb: (image?: string | HTMLImageElement | HTMLCanvasElement) => void) => void\r\nexport type GetTilesUrlFn = (tiles: Tiles[], cb: (values: TileImg[]) => 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 getTileUrl: Function as PropType<GetTileUrlFn>,\r\n getTilesUrl: Function as PropType<GetTilesUrlFn>,\r\n} as const\r\n\r\nexport type TileLayerProps = ExtractPublicPropTypes<typeof tileLayerProps>\r\n"],"names":[],"mappings":";;AAuBO,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,UAAA,EAAY,QAAA;AAAA,EACZ,WAAA,EAAa;;;;;"}
|
|
@@ -48,6 +48,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
48
48
|
readonly zIndex: NumberConstructor;
|
|
49
49
|
readonly zIndexTop: BooleanConstructor;
|
|
50
50
|
readonly tileUrlTemplate: StringConstructor;
|
|
51
|
+
readonly getTileUrl: import("vue").PropType<import("./tile-props").GetTileUrlFn>;
|
|
51
52
|
readonly getTilesUrl: import("vue").PropType<import("./tile-props").GetTilesUrlFn>;
|
|
52
53
|
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
53
54
|
readonly visible: {
|
|
@@ -99,6 +100,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
99
100
|
readonly zIndex: NumberConstructor;
|
|
100
101
|
readonly zIndexTop: BooleanConstructor;
|
|
101
102
|
readonly tileUrlTemplate: StringConstructor;
|
|
103
|
+
readonly getTileUrl: import("vue").PropType<import("./tile-props").GetTileUrlFn>;
|
|
102
104
|
readonly getTilesUrl: import("vue").PropType<import("./tile-props").GetTilesUrlFn>;
|
|
103
105
|
}>> & Readonly<{}>, {
|
|
104
106
|
readonly visible: boolean;
|
|
@@ -9,6 +9,8 @@ var tile = /* @__PURE__ */ vue.defineComponent({
|
|
|
9
9
|
props: tileProps.tileLayerProps,
|
|
10
10
|
setup(props) {
|
|
11
11
|
const mapInstance = useMapInstance();
|
|
12
|
+
let requestQueue = [];
|
|
13
|
+
let batchTimer;
|
|
12
14
|
let layer = null;
|
|
13
15
|
const setZIndex = (zIndex) => {
|
|
14
16
|
layer === null || layer === void 0 ? void 0 : layer.setZIndex(zIndex);
|
|
@@ -19,42 +21,117 @@ var tile = /* @__PURE__ */ vue.defineComponent({
|
|
|
19
21
|
const setZIndexTop = (zIndexTop) => {
|
|
20
22
|
layer === null || layer === void 0 ? void 0 : layer.setTop(zIndexTop);
|
|
21
23
|
};
|
|
24
|
+
const loadImage = (request, img) => {
|
|
25
|
+
const handleLoad = (image) => {
|
|
26
|
+
image.tileInfo = request.tileInfo;
|
|
27
|
+
request.cb(image, request.key);
|
|
28
|
+
};
|
|
29
|
+
const handleError = () => request.cb(null, request.key);
|
|
30
|
+
if (typeof img === "string" || img instanceof HTMLCanvasElement) {
|
|
31
|
+
const image = new Image();
|
|
32
|
+
image.crossOrigin = "anonymous";
|
|
33
|
+
image.onload = () => handleLoad(image);
|
|
34
|
+
image.onerror = handleError;
|
|
35
|
+
image.src = typeof img === "string" ? img : img.toDataURL();
|
|
36
|
+
} else if (img instanceof HTMLImageElement) {
|
|
37
|
+
handleLoad(img);
|
|
38
|
+
} else {
|
|
39
|
+
handleError();
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const processBatch = () => {
|
|
43
|
+
if (requestQueue.length === 0) return;
|
|
44
|
+
const {
|
|
45
|
+
getTilesUrl
|
|
46
|
+
} = props;
|
|
47
|
+
const batch = [...requestQueue];
|
|
48
|
+
requestQueue = [];
|
|
49
|
+
const tiles = batch.map(({
|
|
50
|
+
key,
|
|
51
|
+
tile,
|
|
52
|
+
boundRange
|
|
53
|
+
}) => ({
|
|
54
|
+
key,
|
|
55
|
+
tile,
|
|
56
|
+
boundRange
|
|
57
|
+
}));
|
|
58
|
+
getTilesUrl(tiles, (values) => {
|
|
59
|
+
for (const value of values) {
|
|
60
|
+
const index = batch.findIndex((item) => item.key === value.key);
|
|
61
|
+
if (index !== -1) {
|
|
62
|
+
const tiles2 = batch[index];
|
|
63
|
+
loadImage(tiles2, value.img);
|
|
64
|
+
batch.splice(index, 1);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
batch.forEach((tiles2) => {
|
|
68
|
+
tiles2.cb(null, tiles2.key);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
const enqueue = (data) => {
|
|
73
|
+
const existing = requestQueue.find((item) => item.key === data.key);
|
|
74
|
+
if (existing) {
|
|
75
|
+
existing.cb(null, data.key);
|
|
76
|
+
existing.cb = data.cb;
|
|
77
|
+
} else {
|
|
78
|
+
requestQueue.push(data);
|
|
79
|
+
}
|
|
80
|
+
if (batchTimer) {
|
|
81
|
+
clearTimeout(batchTimer);
|
|
82
|
+
}
|
|
83
|
+
batchTimer = setTimeout(() => processBatch(), 50);
|
|
84
|
+
};
|
|
22
85
|
const addTileLayer = () => {
|
|
23
86
|
const {
|
|
87
|
+
getTileUrl,
|
|
24
88
|
getTilesUrl
|
|
25
89
|
} = props;
|
|
26
90
|
if (!layer) return;
|
|
27
|
-
if (
|
|
91
|
+
if (getTileUrl) {
|
|
28
92
|
mapInstance().addTileLayer(layer);
|
|
29
93
|
layer.loadRasterTileData = function(tileInfo, callback) {
|
|
30
94
|
const key = this.getTileKey(tileInfo);
|
|
31
|
-
const
|
|
32
|
-
image.tileInfo = tileInfo;
|
|
33
|
-
callback && callback(image, key);
|
|
34
|
-
};
|
|
35
|
-
const handleError = () => callback && callback(null, key);
|
|
36
|
-
const box = BMapGL.Projection.tileToBoundRange({
|
|
95
|
+
const boundRange = BMapGL.Projection.tileToBoundRange({
|
|
37
96
|
col: tileInfo.col,
|
|
38
97
|
row: tileInfo.row,
|
|
39
98
|
baseTileSize: tileInfo.baseTileSize,
|
|
40
99
|
zoom: tileInfo.zoom
|
|
41
100
|
});
|
|
42
|
-
|
|
101
|
+
getTileUrl({
|
|
43
102
|
x: tileInfo.col,
|
|
44
103
|
y: tileInfo.row,
|
|
45
104
|
z: tileInfo.zoom
|
|
46
|
-
},
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
105
|
+
}, boundRange, (img) => {
|
|
106
|
+
loadImage({
|
|
107
|
+
cb: callback,
|
|
108
|
+
boundRange,
|
|
109
|
+
key,
|
|
110
|
+
tileInfo
|
|
111
|
+
}, img);
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
} else if (getTilesUrl) {
|
|
115
|
+
mapInstance().addTileLayer(layer);
|
|
116
|
+
layer.loadRasterTileData = function(tileInfo, callback) {
|
|
117
|
+
const key = this.getTileKey(tileInfo);
|
|
118
|
+
const tile = {
|
|
119
|
+
x: tileInfo.col,
|
|
120
|
+
y: tileInfo.row,
|
|
121
|
+
z: tileInfo.zoom
|
|
122
|
+
};
|
|
123
|
+
const boundRange = BMapGL.Projection.tileToBoundRange({
|
|
124
|
+
col: tileInfo.col,
|
|
125
|
+
row: tileInfo.row,
|
|
126
|
+
baseTileSize: tileInfo.baseTileSize,
|
|
127
|
+
zoom: tileInfo.zoom
|
|
128
|
+
});
|
|
129
|
+
enqueue({
|
|
130
|
+
key,
|
|
131
|
+
tile,
|
|
132
|
+
boundRange,
|
|
133
|
+
cb: callback,
|
|
134
|
+
tileInfo
|
|
58
135
|
});
|
|
59
136
|
};
|
|
60
137
|
} else {
|
|
@@ -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, 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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"}
|
|
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 type { Tiles } from './tile-props'\r\nimport { defineComponent, onUnmounted, watch } from 'vue'\r\nimport { useMapInstance } from '../../../_mixins'\r\nimport { tileLayerProps } from './tile-props'\r\n\r\ninterface TileRequest extends Partial<Tiles> {\r\n cb: any\r\n tileInfo: any\r\n}\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 requestQueue: TileRequest[] = []\r\n\r\n let batchTimer: number\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 loadImage = (request: TileRequest, img?: string | HTMLImageElement | HTMLCanvasElement) => {\r\n const handleLoad = (image: HTMLImageElement) => {\r\n (image as any).tileInfo = request.tileInfo\r\n request.cb(image, request.key)\r\n }\r\n\r\n const handleError = () => request.cb(null, request.key)\r\n\r\n if (typeof img === 'string' || img instanceof HTMLCanvasElement) {\r\n const image = new Image()\r\n image.crossOrigin = 'anonymous'\r\n image.onload = () => handleLoad(image)\r\n image.onerror = handleError\r\n image.src = typeof img === 'string' ? img : img.toDataURL()\r\n } else if (img instanceof HTMLImageElement) {\r\n handleLoad(img)\r\n } else {\r\n handleError()\r\n }\r\n }\r\n\r\n const processBatch = () => {\r\n if (requestQueue.length === 0)\r\n return\r\n\r\n const { getTilesUrl } = props\r\n\r\n const batch = [...requestQueue]\r\n requestQueue = []\r\n\r\n const tiles = batch.map(({ key, tile, boundRange }) => ({ key, tile, boundRange }))\r\n getTilesUrl!(tiles as any, (values) => {\r\n for (const value of values) {\r\n const index = batch.findIndex(item => item.key === value.key)\r\n if (index !== -1) {\r\n const tiles = batch[index]\r\n loadImage(tiles, value.img)\r\n batch.splice(index, 1)\r\n }\r\n }\r\n\r\n batch.forEach((tiles) => {\r\n tiles.cb(null, tiles.key)\r\n })\r\n })\r\n }\r\n\r\n const enqueue = (data: TileRequest) => {\r\n const existing = requestQueue.find(item => item.key === data.key)\r\n if (existing) {\r\n existing.cb(null, data.key)\r\n existing.cb = data.cb\r\n } else {\r\n requestQueue.push(data)\r\n }\r\n\r\n if (batchTimer) {\r\n clearTimeout(batchTimer)\r\n }\r\n batchTimer = setTimeout(() => processBatch(), 50)\r\n }\r\n\r\n const addTileLayer = () => {\r\n const { getTileUrl, getTilesUrl } = props\r\n if (!layer)\r\n return\r\n if (getTileUrl) {\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 boundRange = (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 getTileUrl({ x: tileInfo.col, y: tileInfo.row, z: tileInfo.zoom }, boundRange, (img) => {\r\n loadImage({ cb: callback, boundRange, key, tileInfo }, img)\r\n })\r\n }\r\n } else 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 tile = { x: tileInfo.col, y: tileInfo.row, z: tileInfo.zoom }\r\n const boundRange = (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 enqueue({ key, tile, boundRange, cb: callback, tileInfo })\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","requestQueue","batchTimer","layer","setZIndex","zIndex","setBoundary","boundary","addBoundary","clearBoundary","setZIndexTop","zIndexTop","setTop","loadImage","request","img","handleLoad","image","tileInfo","cb","key","handleError","HTMLCanvasElement","Image","crossOrigin","onload","onerror","src","toDataURL","HTMLImageElement","processBatch","length","getTilesUrl","batch","tiles","map","tile","boundRange","values","value","index","findIndex","item","splice","forEach","enqueue","data","existing","find","push","clearTimeout","setTimeout","addTileLayer","getTileUrl","loadRasterTileData","callback","getTileKey","BMapGL","Projection","tileToBoundRange","col","row","baseTileSize","zoom","x","y","z","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":";;;;;;AAUA,+CAA+B;AAAA,EAC7BA,IAAAA,EAAM,WAAA;AAAA,EACNC,KAAAA,EAAOC,wBAAAA;AAAAA,EACPC,MAAMF,KAAAA,EAAK;AACT,IAAA,MAAMG,cAAcC,cAAAA,EAAc;AAElC,IAAA,IAAIC,eAA8B,EAAA;AAElC,IAAA,IAAIC,UAAAA;AAEJ,IAAA,IAAIC,KAAAA,GAAiC,IAAA;AAErC,IAAA,MAAMC,YAAaC,CAAAA,MAAAA,KAAmB;AACnCF,MAAAA,KAAAA,KAAa,QAAbA,KAAAA,KAAK,MAAA,GAAA,MAAA,GAALA,KAAAA,CAAeC,UAAUC,MAAM,CAAA;AAAA,IAClC,CAAA;AAEA,IAAA,MAAMC,cAAeC,CAAAA,QAAAA,KAAgC;AACnDA,MAAAA,QAAAA,GAAYJ,KAAAA,KAAa,IAAA,IAAbA,KAAAA,KAAK,MAAA,GAAA,SAALA,KAAAA,CAAeK,WAAAA,CAAYD,QAAQ,CAAA,GAAKJ,UAAa,IAAA,IAAbA,KAAAA,uBAAAA,MAAeM,aAAAA,EAAa;AAAA,IAClF,CAAA;AAEA,IAAA,MAAMC,eAAgBC,CAAAA,SAAAA,KAAuB;AAC1CR,MAAAA,KAAAA,KAAa,QAAbA,KAAAA,KAAK,MAAA,GAAA,MAAA,GAALA,KAAAA,CAAeS,OAAOD,SAAS,CAAA;AAAA,IAClC,CAAA;AAEA,IAAA,MAAME,SAAAA,GAAYA,CAACC,OAAAA,EAAsBC,GAAAA,KAAuD;AAC9F,MAAA,MAAMC,aAAcC,CAAAA,KAAAA,KAA2B;AAC5CA,QAAAA,KAAAA,CAAcC,WAAWJ,OAAAA,CAAQI,QAAAA;AAClCJ,QAAAA,OAAAA,CAAQK,EAAAA,CAAGF,KAAAA,EAAOH,OAAAA,CAAQM,GAAG,CAAA;AAAA,MAC/B,CAAA;AAEA,MAAA,MAAMC,cAAcA,MAAMP,OAAAA,CAAQK,EAAAA,CAAG,IAAA,EAAML,QAAQM,GAAG,CAAA;AAEtD,MAAA,IAAI,OAAOL,GAAAA,KAAQ,QAAA,IAAYA,GAAAA,YAAeO,iBAAAA,EAAmB;AAC/D,QAAA,MAAML,KAAAA,GAAQ,IAAIM,KAAAA;AAClBN,QAAAA,KAAAA,CAAMO,WAAAA,GAAc,WAAA;AACpBP,QAAAA,KAAAA,CAAMQ,MAAAA,GAAS,MAAMT,UAAAA,CAAWC,KAAK,CAAA;AACrCA,QAAAA,KAAAA,CAAMS,OAAAA,GAAUL,WAAAA;AAChBJ,QAAAA,KAAAA,CAAMU,MAAM,OAAOZ,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIa,SAAAA;MAClD,CAAA,MAAA,IAAWb,eAAec,gBAAAA,EAAkB;AAC1Cb,QAAAA,UAAAA,CAAWD,GAAG,CAAA;AAAA,MAChB,CAAA,MAAO;AACLM,QAAAA,WAAAA;MACF;AAAA,IACF,CAAA;AAEA,IAAA,MAAMS,eAAeA,MAAK;AACxB,MAAA,IAAI7B,YAAAA,CAAa8B,WAAW,CAAA,EAC1B;AAEF,MAAA,MAAM;AAAA,QAAEC;AAAAA,OAAW,GAAKpC,KAAAA;AAExB,MAAA,MAAMqC,KAAAA,GAAQ,CAAC,GAAGhC,YAAY,CAAA;AAC9BA,MAAAA,YAAAA,GAAe,EAAA;AAEf,MAAA,MAAMiC,KAAAA,GAAQD,KAAAA,CAAME,GAAAA,CAAI,CAAC;AAAA,QAAEf,GAAAA;AAAAA,QAAKgB,IAAAA;AAAAA,QAAMC;AAAAA,OAAU,MAAQ;AAAA,QAAEjB,GAAAA;AAAAA,QAAKgB,IAAAA;AAAAA,QAAMC;AAAAA,OAAU,CAAG,CAAA;AAClFL,MAAAA,WAAAA,CAAaE,OAAeI,CAAAA,MAAAA,KAAU;AACpC,QAAA,KAAA,MAAWC,SAASD,MAAAA,EAAQ;AAC1B,UAAA,MAAME,QAAQP,KAAAA,CAAMQ,SAAAA,CAAUC,UAAQA,IAAAA,CAAKtB,GAAAA,KAAQmB,MAAMnB,GAAG,CAAA;AAC5D,UAAA,IAAIoB,UAAU,EAAA,EAAI;AAChB,YAAA,MAAMN,MAAAA,GAAQD,MAAMO,KAAK,CAAA;AACzB3B,YAAAA,SAAAA,CAAUqB,MAAAA,EAAOK,MAAMxB,GAAG,CAAA;AAC1BkB,YAAAA,KAAAA,CAAMU,MAAAA,CAAOH,OAAO,CAAC,CAAA;AAAA,UACvB;AAAA,QACF;AAEAP,QAAAA,KAAAA,CAAMW,OAAAA,CAASV,CAAAA,MAAAA,KAAS;AACtBA,UAAAA,MAAAA,CAAMf,EAAAA,CAAG,IAAA,EAAMe,MAAAA,CAAMd,GAAG,CAAA;AAAA,QAC1B,CAAC,CAAA;AAAA,MACH,CAAC,CAAA;AAAA,IACH,CAAA;AAEA,IAAA,MAAMyB,UAAWC,CAAAA,IAAAA,KAAqB;AACpC,MAAA,MAAMC,WAAW9C,YAAAA,CAAa+C,IAAAA,CAAKN,UAAQA,IAAAA,CAAKtB,GAAAA,KAAQ0B,KAAK1B,GAAG,CAAA;AAChE,MAAA,IAAI2B,QAAAA,EAAU;AACZA,QAAAA,QAAAA,CAAS5B,EAAAA,CAAG,IAAA,EAAM2B,IAAAA,CAAK1B,GAAG,CAAA;AAC1B2B,QAAAA,QAAAA,CAAS5B,KAAK2B,IAAAA,CAAK3B,EAAAA;AAAAA,MACrB,CAAA,MAAO;AACLlB,QAAAA,YAAAA,CAAagD,KAAKH,IAAI,CAAA;AAAA,MACxB;AAEA,MAAA,IAAI5C,UAAAA,EAAY;AACdgD,QAAAA,YAAAA,CAAahD,UAAU,CAAA;AAAA,MACzB;AACAA,MAAAA,UAAAA,GAAaiD,UAAAA,CAAW,MAAMrB,YAAAA,EAAY,EAAI,EAAE,CAAA;AAAA,IAClD,CAAA;AAEA,IAAA,MAAMsB,eAAeA,MAAK;AACxB,MAAA,MAAM;AAAA,QAAEC,UAAAA;AAAAA,QAAYrB;AAAAA,OAAW,GAAKpC,KAAAA;AACpC,MAAA,IAAI,CAACO,KAAAA,EACH;AACF,MAAA,IAAIkD,UAAAA,EAAY;AACdtD,QAAAA,WAAAA,GAAcqD,aAAajD,KAAK,CAAA;AAC9BA,QAAAA,KAAAA,CAAcmD,kBAAAA,GAAqB,SAAUpC,QAAAA,EAAeqC,QAAAA,EAAa;AACzE,UAAA,MAAMnC,GAAAA,GAAM,IAAA,CAAKoC,UAAAA,CAAWtC,QAAQ,CAAA;AAEpC,UAAA,MAAMmB,UAAAA,GAAcoB,MAAAA,CAAeC,UAAAA,CAAWC,gBAAAA,CAAiB;AAAA,YAC7DC,KAAK1C,QAAAA,CAAS0C,GAAAA;AAAAA,YACdC,KAAK3C,QAAAA,CAAS2C,GAAAA;AAAAA,YACdC,cAAc5C,QAAAA,CAAS4C,YAAAA;AAAAA,YACvBC,MAAM7C,QAAAA,CAAS6C;AAAAA,WAChB,CAAA;AAEDV,UAAAA,UAAAA,CAAW;AAAA,YAAEW,GAAG9C,QAAAA,CAAS0C,GAAAA;AAAAA,YAAKK,GAAG/C,QAAAA,CAAS2C,GAAAA;AAAAA,YAAKK,GAAGhD,QAAAA,CAAS6C;AAAAA,WAAI,EAAI1B,YAAatB,CAAAA,GAAAA,KAAO;AACrFF,YAAAA,SAAAA,CAAU;AAAA,cAAEM,EAAAA,EAAIoC,QAAAA;AAAAA,cAAUlB,UAAAA;AAAAA,cAAYjB,GAAAA;AAAAA,cAAKF;AAAAA,eAAYH,GAAG,CAAA;AAAA,UAC5D,CAAC,CAAA;AAAA,QACH,CAAA;AAAA,MACF,WAAWiB,WAAAA,EAAa;AACtBjC,QAAAA,WAAAA,GAAcqD,aAAajD,KAAK,CAAA;AAC9BA,QAAAA,KAAAA,CAAcmD,kBAAAA,GAAqB,SAAUpC,QAAAA,EAAeqC,QAAAA,EAAa;AACzE,UAAA,MAAMnC,GAAAA,GAAM,IAAA,CAAKoC,UAAAA,CAAWtC,QAAQ,CAAA;AAEpC,UAAA,MAAMkB,IAAAA,GAAO;AAAA,YAAE4B,GAAG9C,QAAAA,CAAS0C,GAAAA;AAAAA,YAAKK,GAAG/C,QAAAA,CAAS2C,GAAAA;AAAAA,YAAKK,GAAGhD,QAAAA,CAAS6C;AAAAA,WAAI;AACjE,UAAA,MAAM1B,UAAAA,GAAcoB,MAAAA,CAAeC,UAAAA,CAAWC,gBAAAA,CAAiB;AAAA,YAC7DC,KAAK1C,QAAAA,CAAS0C,GAAAA;AAAAA,YACdC,KAAK3C,QAAAA,CAAS2C,GAAAA;AAAAA,YACdC,cAAc5C,QAAAA,CAAS4C,YAAAA;AAAAA,YACvBC,MAAM7C,QAAAA,CAAS6C;AAAAA,WAChB,CAAA;AAEDlB,UAAAA,OAAAA,CAAQ;AAAA,YAAEzB,GAAAA;AAAAA,YAAKgB,IAAAA;AAAAA,YAAMC,UAAAA;AAAAA,YAAYlB,EAAAA,EAAIoC,QAAAA;AAAAA,YAAUrC;AAAAA,WAAU,CAAA;AAAA,QAC3D,CAAA;AAAA,MACF,CAAA,MAAO;AACLnB,QAAAA,WAAAA,GAAcqD,aAAajD,KAAK,CAAA;AAAA,MAClC;AAAA,IACF,CAAA;AAEA,IAAA,MAAMgE,mBAAmBA,MAAK;AAC5B,MAAA,MAAM;AAAA,QAAE9D,MAAAA;AAAAA,QAAQE;AAAAA,OAAQ,GAAKX,KAAAA;AAC7BU,MAAAA,WAAAA,CAAYC,QAAQ,CAAA;AACpBH,MAAAA,SAAAA,CAAUC,MAAM,CAAA;AAAA,IAClB,CAAA;AAEA,IAAA,MAAM+D,kBAAkBA,MAAK;AAC3BC,MAAAA,SAAAA,CAAM,MAAMzE,KAAAA,CAAMS,MAAAA,EAAQD,SAAS,CAAA;AACnCiE,MAAAA,SAAAA,CAAM,MAAMzE,KAAAA,CAAMW,QAAAA,EAAUD,WAAW,CAAA;AACvC+D,MAAAA,SAAAA,CAAM,MAAMzE,KAAAA,CAAMe,SAAAA,EAAWD,YAAY,CAAA;AACzC2D,MAAAA,SAAAA,CAAM,MAAMzE,KAAAA,CAAM0E,OAAAA,EAASC,CAAAA,CAAAA,KAAKA,CAAAA,GAAInB,YAAAA,EAAY,GAAKrD,WAAAA,EAAW,CAAGyE,eAAAA,CAAgBrE,KAAM,CAAC,CAAA;AAAA,IAC5F,CAAA;AAEA,IAAA,MAAMsE,OAAOA,MAAK;AAChB,MAAA,MAAM;AAAA,QAAEH,OAAAA;AAAAA,QAASI,SAAAA;AAAAA,QAAWC,IAAAA;AAAAA,QAAMC,MAAAA;AAAAA,QAAQC,KAAAA;AAAAA,QAAOC,SAAAA;AAAAA,QAAWC,cAAAA;AAAAA,QAAgBC,QAAAA;AAAAA,QAAUC,SAAAA;AAAAA,QAAWC,YAAAA;AAAAA,QAAcC,SAAAA;AAAAA,QAAWC,WAAAA;AAAAA,QAAaC,QAAAA;AAAAA,QAAUC,KAAAA;AAAAA,QAAOC,OAAAA;AAAAA,QAASC,SAAAA;AAAAA,QAAWC,UAAAA;AAAAA,QAAYC,YAAAA;AAAAA,QAAcC;AAAAA,OAAe,GAAK/F,KAAAA;AAC1NO,MAAAA,KAAAA,GAAQ,IAAIsD,OAAOmC,SAAAA,CAAU;AAAA,QAC3BlB,SAAAA;AAAAA,QACAC,IAAAA;AAAAA,QACAC,MAAAA;AAAAA,QACAC,KAAAA;AAAAA,QACAC,SAAAA;AAAAA,QACAC,cAAAA;AAAAA,QACAC,QAAAA;AAAAA,QACAC,SAAAA;AAAAA,QACAC,YAAAA;AAAAA,QACAC,SAAAA;AAAAA,QACAC,WAAAA;AAAAA,QACAC,QAAAA;AAAAA,QACAC,KAAAA;AAAAA,QACAC,OAAAA;AAAAA,QACAC,SAAAA;AAAAA,QACAC,UAAAA;AAAAA,QACAC,YAAAA;AAAAA,QACAC;AAAAA,OACM,CAAA;AACRxB,MAAAA,gBAAAA;AACAG,MAAAA,OAAAA,IAAWlB,YAAAA,EAAY;AACvBgB,MAAAA,eAAAA;IACF,CAAA;AAEAK,IAAAA,IAAAA;AAEAoB,IAAAA,eAAAA,CAAY,MAAK;AACf,MAAA,IAAI1F,KAAAA,EAAO;AACTJ,QAAAA,WAAAA,GAAcyE,gBAAgBrE,KAAK,CAAA;AAAA,MACrC;AAAA,IACF,CAAC,CAAA;AAED,IAAA,OAAO,MAAA2F,eAAAA,CAAAC,YAAAA,EAAA,IAAA,EAAA,IAAA,CAAA;AAAA,EACT;AACD,CAAA,CAAA;;;;"}
|
|
@@ -107,12 +107,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
107
107
|
readonly default: false;
|
|
108
108
|
};
|
|
109
109
|
}>> & Readonly<{}>, {
|
|
110
|
-
readonly minZoom: number;
|
|
111
|
-
readonly maxZoom: number;
|
|
112
110
|
readonly visible: boolean;
|
|
113
111
|
readonly useThumbData: boolean;
|
|
114
112
|
readonly zIndex: number;
|
|
115
113
|
readonly zIndexTop: boolean;
|
|
114
|
+
readonly minZoom: number;
|
|
115
|
+
readonly maxZoom: number;
|
|
116
116
|
readonly extentCRSIsWGS84: boolean;
|
|
117
117
|
readonly tms: boolean;
|
|
118
118
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|