| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 644f4fb commit 3bb88bf
4 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -2,7 +2,7 @@ | |||
| 2 | 2 | * This program are made available under the terms of the Apache License, Version 2.0 | |
| 3 | 3 | * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ | |
| 4 | 4 | import { FetchRequest } from '../util/FetchRequest'; | |
| 5 | - import { getLayerInfosFromCatalogs, getMainLayerFromCatalog, isSameRasterLayer, mergeFeatures, transformUrl } from './utils/util'; | ||
| 5 | + import { getLayerCatalogRenderLayers, getLayerInfosFromCatalogs, getMainLayerFromCatalog, isSameRasterLayer, mergeFeatures, transformUrl } from './utils/util'; | ||
| 6 | 6 | import { SourceListModelV3 } from './utils/SourceListModelV3'; | |
| 7 | 7 | ||
| 8 | 8 | const LEGEND_RENDER_TYPE = { | |
@@ -504,7 +504,7 @@ export function createWebMapV3Extending(SuperClass, { MapManager, mapRepo, mapRe | |||
| 504 | 504 | layer.id = layerId; | |
| 505 | 505 | } | |
| 506 | 506 | } | |
| 507 | - layerIdToChange.push({ originId: originId, renderId: layer.id }); | ||
| 507 | + layerIdToChange.push({ originId: originId, renderId: layer.id, id: originId }); | ||
| 508 | 508 | } | |
| 509 | 509 | const layerCatalogFromMapJson = JSON.parse(JSON.stringify(style.metadata.layerCatalog), 'parts'); | |
| 510 | 510 | this._updateLayerCatalogsId({ | |
@@ -592,7 +592,8 @@ export function createWebMapV3Extending(SuperClass, { MapManager, mapRepo, mapRe | |||
| 592 | 592 | }); | |
| 593 | 593 | return; | |
| 594 | 594 | } | |
| 595 | - const matchLayer = layerIdMapList.find((item) => item.originId === id); | ||
| 595 | + const renderLayers = getLayerCatalogRenderLayers(loopItem[layerIdsField], id, layerIdMapList); | ||
| 596 | + const matchLayer = layerIdMapList.find((item) => item.originId === renderLayers[0]); | ||
| 596 | 597 | if (matchLayer) { | |
| 597 | 598 | const catalog = this._findLayerCatalog(catalogs, id); | |
| 598 | 599 | catalog.id = matchLayer.renderId; | |
@@ -602,7 +603,7 @@ export function createWebMapV3Extending(SuperClass, { MapManager, mapRepo, mapRe | |||
| 602 | 603 | } | |
| 603 | 604 | return; | |
| 604 | 605 | } | |
| 605 | - if (unspportedLayers.includes(id)) { | ||
| 606 | + if (unspportedLayers.includes(id) || renderLayers.some((layerId) => unspportedLayers.includes(layerId))) { | ||
| 606 | 607 | this._deleteLayerCatalog(catalogs, id); | |
| 607 | 608 | } | |
| 608 | 609 | }); | |
@@ -1407,9 +1408,10 @@ export function createWebMapV3Extending(SuperClass, { MapManager, mapRepo, mapRe | |||
| 1407 | 1408 | const unSupportedMsg = 'layer are not supported yet'; | |
| 1408 | 1409 | const { interaction } = mapInfo; | |
| 1409 | 1410 | if (interaction && interaction.drill) { | |
| 1410 | - this.fire('layercreatefailed', { error: `drill ${unSupportedMsg}`, map: this.map }); | ||
| 1411 | + this.fire('layercreatefailed', { error: `drill ${unSupportedMsg}`, map: this.map, error_code: 'DRILL_LAYERS_NOT_SUPPORTED' }); | ||
| 1411 | 1412 | interaction.drill.forEach((drillItem) => { | |
| 1412 | - filterLayerIds.push(...drillItem.layerIds); | ||
| 1413 | + const drillLayerIds = drillItem.layerIds || drillItem.layers.reduce((ids, item) => ids.concat(item.layerIds), []); | ||
| 1414 | + filterLayerIds.push(...drillLayerIds); | ||
| 1413 | 1415 | }); | |
| 1414 | 1416 | } | |
| 1415 | 1417 | return filterLayerIds; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -439,8 +439,65 @@ describe('mapboxgl-webmap3.0', () => { | |||
| 439 | 439 | server: server, | |
| 440 | 440 | target: 'map' | |
| 441 | 441 | }); | |
| 442 | - mapstudioWebmap.on('layercreatefailed', ({ error }) => { | ||
| 442 | + mapstudioWebmap.on('layercreatefailed', ({ error, error_code }) => { | ||
| 443 | 443 | expect(['drill'].indexOf(error.split(' ')[0]) > -1).toBeTruthy(); | |
| 444 | + expect(error_code).toBe('DRILL_LAYERS_NOT_SUPPORTED'); | ||
| 445 | + }); | ||
| 446 | + mapstudioWebmap.on('mapcreatesucceeded', ({ map }) => { | ||
| 447 | + const style = map.getStyle(); | ||
| 448 | + expect(style.layers.length).toBeLessThan(originMapInfo.layers.length); | ||
| 449 | + expect(style.layers.length).toBe(mapInfo.layers.length); | ||
| 450 | + expect(mapstudioWebmap.getLayers().length).toBe(1); | ||
| 451 | + expect(mapstudioWebmap.getLayerCatalog().length).toBe(1); | ||
| 452 | + done(); | ||
| 453 | + }); | ||
| 454 | + mapstudioWebmap.initializeMap(mapInfo); | ||
| 455 | + }); | ||
| 456 | + | ||
| 457 | + it('filter drill ui id test', (done) => { | ||
| 458 | + spyOn(FetchRequest, 'get').and.callFake((url) => { | ||
| 459 | + if (url.indexOf('/sprite') > -1) { | ||
| 460 | + return Promise.resolve(new Response(msSpriteInfo)); | ||
| 461 | + } | ||
| 462 | + return Promise.resolve(); | ||
| 463 | + }); | ||
| 464 | + const mapInfo = JSON.parse(mapstudioWebMap_drill_layers1); | ||
| 465 | + const originMapInfo = JSON.parse(mapstudioWebMap_drill_layers1); | ||
| 466 | + const mapstudioWebmap = new WebMapV3(mapInfo, { | ||
| 467 | + server: server, | ||
| 468 | + target: 'map' | ||
| 469 | + }); | ||
| 470 | + mapstudioWebmap.on('layercreatefailed', ({ error, error_code }) => { | ||
| 471 | + expect(['drill'].indexOf(error.split(' ')[0]) > -1).toBeTruthy(); | ||
| 472 | + expect(error_code).toBe('DRILL_LAYERS_NOT_SUPPORTED'); | ||
| 473 | + }); | ||
| 474 | + mapstudioWebmap.on('mapcreatesucceeded', ({ map }) => { | ||
| 475 | + const style = map.getStyle(); | ||
| 476 | + expect(style.layers.length).toBeLessThan(originMapInfo.layers.length); | ||
| 477 | + expect(style.layers.length).toBe(mapInfo.layers.length); | ||
| 478 | + expect(mapstudioWebmap.getLayers().length).toBe(1); | ||
| 479 | + expect(mapstudioWebmap.getLayerCatalog().length).toBe(1); | ||
| 480 | + done(); | ||
| 481 | + }); | ||
| 482 | + mapstudioWebmap.initializeMap(mapInfo); | ||
| 483 | + }); | ||
| 484 | + | ||
| 485 | + it('filter drill interaction changed test', (done) => { | ||
| 486 | + spyOn(FetchRequest, 'get').and.callFake((url) => { | ||
| 487 | + if (url.indexOf('/sprite') > -1) { | ||
| 488 | + return Promise.resolve(new Response(msSpriteInfo)); | ||
| 489 | + } | ||
| 490 | + return Promise.resolve(); | ||
| 491 | + }); | ||
| 492 | + const mapInfo = JSON.parse(mapstudioWebMap_drill_layers2); | ||
| 493 | + const originMapInfo = JSON.parse(mapstudioWebMap_drill_layers2); | ||
| 494 | + const mapstudioWebmap = new WebMapV3(mapInfo, { | ||
| 495 | + server: server, | ||
| 496 | + target: 'map' | ||
| 497 | + }); | ||
| 498 | + mapstudioWebmap.on('layercreatefailed', ({ error, error_code }) => { | ||
| 499 | + expect(['drill'].indexOf(error.split(' ')[0]) > -1).toBeTruthy(); | ||
| 500 | + expect(error_code).toBe('DRILL_LAYERS_NOT_SUPPORTED'); | ||
| 444 | 501 | }); | |
| 445 | 502 | mapstudioWebmap.on('mapcreatesucceeded', ({ map }) => { | |
| 446 | 503 | const style = map.getStyle(); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -404,8 +404,65 @@ describe('maplibregl-webmap3.0', () => { | |||
| 404 | 404 | server: server, | |
| 405 | 405 | target: 'map' | |
| 406 | 406 | }); | |
| 407 | - mapstudioWebmap.on('layercreatefailed', ({ error }) => { | ||
| 407 | + mapstudioWebmap.on('layercreatefailed', ({ error, error_code }) => { | ||
| 408 | 408 | expect(['drill'].indexOf(error.split(' ')[0]) > -1).toBeTruthy(); | |
| 409 | + expect(error_code).toBe('DRILL_LAYERS_NOT_SUPPORTED'); | ||
| 410 | + }); | ||
| 411 | + mapstudioWebmap.on('mapcreatesucceeded', ({ map }) => { | ||
| 412 | + const style = map.getStyle(); | ||
| 413 | + expect(style.layers.length).toBeLessThan(originMapInfo.layers.length); | ||
| 414 | + expect(style.layers.length).toBe(mapInfo.layers.length); | ||
| 415 | + expect(mapstudioWebmap.getLayers().length).toBe(1); | ||
| 416 | + expect(mapstudioWebmap.getLayerCatalog().length).toBe(1); | ||
| 417 | + done(); | ||
| 418 | + }); | ||
| 419 | + mapstudioWebmap.initializeMap(mapInfo); | ||
| 420 | + }); | ||
| 421 | + | ||
| 422 | + it('filter drill ui id test', (done) => { | ||
| 423 | + spyOn(FetchRequest, 'get').and.callFake((url) => { | ||
| 424 | + if (url.indexOf('/sprite') > -1) { | ||
| 425 | + return Promise.resolve(new Response(msSpriteInfo)); | ||
| 426 | + } | ||
| 427 | + return Promise.resolve(); | ||
| 428 | + }); | ||
| 429 | + const mapInfo = JSON.parse(mapstudioWebMap_drill_layers1); | ||
| 430 | + const originMapInfo = JSON.parse(mapstudioWebMap_drill_layers1); | ||
| 431 | + const mapstudioWebmap = new WebMapV3(mapInfo, { | ||
| 432 | + server: server, | ||
| 433 | + target: 'map' | ||
| 434 | + }); | ||
| 435 | + mapstudioWebmap.on('layercreatefailed', ({ error, error_code }) => { | ||
| 436 | + expect(['drill'].indexOf(error.split(' ')[0]) > -1).toBeTruthy(); | ||
| 437 | + expect(error_code).toBe('DRILL_LAYERS_NOT_SUPPORTED'); | ||
| 438 | + }); | ||
| 439 | + mapstudioWebmap.on('mapcreatesucceeded', ({ map }) => { | ||
| 440 | + const style = map.getStyle(); | ||
| 441 | + expect(style.layers.length).toBeLessThan(originMapInfo.layers.length); | ||
| 442 | + expect(style.layers.length).toBe(mapInfo.layers.length); | ||
| 443 | + expect(mapstudioWebmap.getLayers().length).toBe(1); | ||
| 444 | + expect(mapstudioWebmap.getLayerCatalog().length).toBe(1); | ||
| 445 | + done(); | ||
| 446 | + }); | ||
| 447 | + mapstudioWebmap.initializeMap(mapInfo); | ||
| 448 | + }); | ||
| 449 | + | ||
| 450 | + it('filter drill interaction changed test', (done) => { | ||
| 451 | + spyOn(FetchRequest, 'get').and.callFake((url) => { | ||
| 452 | + if (url.indexOf('/sprite') > -1) { | ||
| 453 | + return Promise.resolve(new Response(msSpriteInfo)); | ||
| 454 | + } | ||
| 455 | + return Promise.resolve(); | ||
| 456 | + }); | ||
| 457 | + const mapInfo = JSON.parse(mapstudioWebMap_drill_layers2); | ||
| 458 | + const originMapInfo = JSON.parse(mapstudioWebMap_drill_layers2); | ||
| 459 | + const mapstudioWebmap = new WebMapV3(mapInfo, { | ||
| 460 | + server: server, | ||
| 461 | + target: 'map' | ||
| 462 | + }); | ||
| 463 | + mapstudioWebmap.on('layercreatefailed', ({ error, error_code }) => { | ||
| 464 | + expect(['drill'].indexOf(error.split(' ')[0]) > -1).toBeTruthy(); | ||
| 465 | + expect(error_code).toBe('DRILL_LAYERS_NOT_SUPPORTED'); | ||
| 409 | 466 | }); | |
| 410 | 467 | mapstudioWebmap.on('mapcreatesucceeded', ({ map }) => { | |
| 411 | 468 | const style = map.getStyle(); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments