Skip to content

Commit 2d75f94

Browse files
Merge branch '11.1.1' of github.com:SuperMap/vue-iclient into 11.1.1
2 parents d7dcd57 + 95dd4c7 commit 2d75f94

File tree

5 files changed

+70
-731
lines changed

5 files changed

+70
-731
lines changed

src/mapboxgl/web-map/WebMapViewModel.ts

+7-6
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ export default class WebMapViewModel extends WebMapBase {
440440
url: proxy ? `${proxy}${encodeURIComponent(url)}` : url,
441441
credentials: this.webMapService.handleWithCredentials(proxy, url, this.withCredentials || false)
442442
? 'include'
443-
: 'omit'
443+
: undefined
444444
};
445445
};
446446
}
@@ -538,7 +538,7 @@ export default class WebMapViewModel extends WebMapBase {
538538
const proxy = this.webMapService.handleProxy('image');
539539
return {
540540
url: url,
541-
credentials: this.webMapService.handleWithCredentials(proxy, url, false) ? 'include' : 'omit'
541+
credentials: this.webMapService.handleWithCredentials(proxy, url, false) ? 'include' : undefined
542542
};
543543
}
544544
return { url };
@@ -2127,17 +2127,18 @@ export default class WebMapViewModel extends WebMapBase {
21272127
if (!markerSrc[layerID]) {
21282128
markerSrc[layerID] = {
21292129
src: defaultStyle.src,
2130-
defaultStyle
2130+
defaultStyle,
2131+
geomType
21312132
};
21322133
}
21332134
});
2134-
const loadImagePromise = (layerID: string, { src, defaultStyle }) => {
2135+
const loadImagePromise = (layerID: string, { src, defaultStyle, geomType }) => {
21352136
return new Promise(resolve => {
2136-
if (!src) {
2137+
if (!src && geomType !== 'TEXT') {
21372138
resolve({ [layerID]: undefined });
21382139
return;
21392140
}
2140-
if (src.indexOf('svg') < 0 && (src.startsWith('http://') || src.startsWith('https://'))) {
2141+
if (src && src.indexOf('svg') < 0 && (src.startsWith('http://') || src.startsWith('https://'))) {
21412142
this.map.loadImage(src, (error, image) => {
21422143
if (error) {
21432144
console.log(error);

src/mapboxgl/web-map/__tests__/WebMapViewModel.spec.js

+61-1
Original file line numberDiff line numberDiff line change
@@ -1813,13 +1813,24 @@ describe('WebMapViewModel.spec', () => {
18131813
);
18141814
const transformed = viewModel.map.options.transformRequest(mockTileUrl, 'Tile');
18151815
expect(transformed.url).toMatch('https://www.supermapol.com/apps/viewer/getUrlResource.png?url=');
1816+
expect(transformed.credentials).toBeUndefined();
18161817
done();
18171818
});
18181819
it('add iportal map', done => {
18191820
const viewModel = new WebMapViewModel(baseLayers['BAIDU']);
18201821
const mockTileUrl = '';
18211822
const transformed = viewModel.map.options.transformRequest(mockTileUrl);
18221823
expect(transformed.url).toBe(mockTileUrl);
1824+
expect(transformed.credentials).toBeUndefined();
1825+
done();
1826+
});
1827+
1828+
it('add iportal map when url include proxy ', done => {
1829+
const viewModel = new WebMapViewModel(baseLayers['BAIDU'], { ...commonOption, proxy: proxyStr, iportalServiceProxyUrlPrefix: proxyStr });
1830+
const mockTileUrl = `${proxyStr}${encodeURIComponent('http://fake.url')}`;
1831+
const transformed = viewModel.map.options.transformRequest(mockTileUrl, 'Tile');
1832+
expect(transformed.url).toContain(mockTileUrl);
1833+
expect(transformed.credentials).toBe('include');
18231834
done();
18241835
});
18251836

@@ -1865,17 +1876,27 @@ describe('WebMapViewModel.spec', () => {
18651876
done();
18661877
});
18671878
it('test transformRequest when proxy is string', done => {
1868-
const viewModel = new WebMapViewModel('', { ...commonOption, proxy: proxyStr }, { ...mapOptions });
1879+
const viewModel = new WebMapViewModel('', { ...commonOption, serverUrl: 'http://localhost:8080/iportal', proxy: proxyStr }, { ...mapOptions });
18691880
const mockTileUrl = tiles[0].replace('{x}', 6).replace('{y}', 8).replace('{z}', 10);
18701881
const transformed = viewModel.mapOptions.transformRequest(mockTileUrl, 'Tile');
18711882
expect(transformed.url).toMatch(proxyStr);
1883+
expect(transformed.credentials).toBeUndefined();
1884+
done();
1885+
});
1886+
it('test transformRequest when url includes proxy', done => {
1887+
const viewModel = new WebMapViewModel('', { ...commonOption, serverUrl: 'http://localhost:8080/iportal', proxy: proxyStr }, { ...mapOptions });
1888+
const mockTileUrl = tiles[0].replace('{x}', 6).replace('{y}', 8).replace('{z}', 10);
1889+
const transformed = viewModel.mapOptions.transformRequest(`${proxyStr}${encodeURIComponent(mockTileUrl)}`, 'Tile');
1890+
expect(transformed.url).toMatch(proxyStr);
1891+
expect(transformed.credentials).toBe('include');
18721892
done();
18731893
});
18741894
it('test transformRequest when proxy is false', done => {
18751895
const viewModel = new WebMapViewModel('', { ...commonOption }, { ...mapOptions });
18761896
const mockTileUrl = tiles[0].replace('{x}', 6).replace('{y}', 8).replace('{z}', 10);
18771897
const transformed = viewModel.mapOptions.transformRequest(mockTileUrl, 'Tile');
18781898
expect(transformed.url).toBe(mockTileUrl);
1899+
expect(transformed.credentials).toBeUndefined();
18791900
done();
18801901
});
18811902
});
@@ -2007,4 +2028,43 @@ describe('WebMapViewModel.spec', () => {
20072028
const viewModel = new WebMapViewModel(id, { ...commonOption });
20082029
viewModel.on({ addlayerssucceeded: callback });
20092030
});
2031+
2032+
it('markerLayer point linstring and text', done => {
2033+
const content = '{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[{"type":"Feature","properties":{"dataViz_title":"","dataViz_description":"","dataViz_imgUrl":"","dataViz_url":"","dataViz_videoUrl":""},"dv_v5_markerStyle":{"strokeColor":"#0081E2","strokeOpacity":1,"strokeWidth":5,"lineCap":"round","lineDash":"solid"},"dv_v5_markerInfo":{"dataViz_title":"","dataViz_description":"","dataViz_imgUrl":"","dataViz_url":"","dataViz_videoUrl":""},"geometry":{"type":"LineString","coordinates":[[103.21230856170534,35.93252826339496],[96.80142450317665,31.772281946203208]]}},{"type":"Feature","properties":{"dataViz_title":"这是文字"},"dv_v5_markerStyle":{"text":"这是文字","font":"33px 宋体","placement":"point","textAlign":"right","fillColor":"#595959","backgroundFill":"#ee8b8b","borderColor":"rgba(255,255,255,0)","borderWidth":4,"padding":[8,8,8,8],"maxWidth":358},"dv_v5_markerInfo":{"dataViz_title":"这是文字"},"geometry":{"type":"Point","coordinates":[101.56249999999991,26.728112105878537]}},{"type":"Feature","properties":{"dataViz_title":"","dataViz_description":"","dataViz_imgUrl":"","dataViz_url":"","dataViz_videoUrl":""},"dv_v5_markerStyle":{"src":"http://172.16.14.44:8190/iportal/apps/dataviz/static/imgs/markers/mark_red.png","scale":1,"anchor":[0.5,0.5],"imgWidth":48,"imgHeight":43},"dv_v5_markerInfo":{"dataViz_title":"","dataViz_description":"","dataViz_imgUrl":"","dataViz_url":"","dataViz_videoUrl":""},"geometry":{"type":"Point","coordinates":[93.72012106170533,30.646288585669723]}},{"type":"Feature","properties":{"dataViz_title":"","dataViz_description":"","dataViz_imgUrl":"","dataViz_url":"","dataViz_videoUrl":""},"dv_v5_markerStyle":{"src":"http://172.16.14.44:8190/iportal/apps/dataviz/static/imgs/markers//ktv_red.png","scale":1,"anchor":[0.5,0.5],"imgWidth":48,"imgHeight":43},"dv_v5_markerInfo":{"dataViz_title":"","dataViz_description":"","dataViz_imgUrl":"","dataViz_url":"","dataViz_videoUrl":""},"geometry":{"type":"Point","coordinates":[95.91738668670534,35.145840549134476]}},{"type":"Feature","properties":{"dataViz_title":"","dataViz_description":"","dataViz_imgUrl":"","dataViz_url":"","dataViz_videoUrl":""},"dv_v5_markerStyle":{"radius":10,"fillColor":"#53C41A","fillOpacity":0.73,"strokeColor":"#e20057","strokeOpacity":1,"strokeWidth":4},"dv_v5_markerInfo":{"dataViz_title":"","dataViz_description":"","dataViz_imgUrl":"","dataViz_url":"","dataViz_videoUrl":""},"geometry":{"type":"Point","coordinates":[101.36660543670533,38.107643862311676]}}]}';
2034+
const newLayerData_geojson = {
2035+
...layerData_geojson['MARKER_GEOJSON'],
2036+
content
2037+
};
2038+
const contentData = JSON.parse(content);
2039+
const fetchResource = {
2040+
'https://fakeiportal.supermap.io/iportal/web/datas/1795361105/content.json?pageSize=9999999&currentPage=1&parentResType=MAP&parentResId=undefined':
2041+
newLayerData_geojson
2042+
};
2043+
mockFetch(fetchResource);
2044+
const layers = [{
2045+
layerType: 'MARKER',
2046+
visible: true,
2047+
name: '未命名标注图层1',
2048+
serverId: '1795361105'
2049+
}];
2050+
const id = {
2051+
...markerLayer,
2052+
layers
2053+
};
2054+
const viewModel = new WebMapViewModel(id, { ...commonOption });
2055+
const callback = function (data) {
2056+
const layersOnMap = Object.values(data.map.overlayLayersManager);
2057+
expect(layersOnMap.length).toBe(contentData.features.length + 1);
2058+
expect(layersOnMap.length).toBe(viewModel._cacheLayerId.length);
2059+
const layerID = layers[0].name;
2060+
const firstMarkerLayer = layersOnMap.find(item => item.id === layerID);
2061+
expect(firstMarkerLayer).toBeTruthy();
2062+
expect(firstMarkerLayer.type).toBe('line');
2063+
expect(layersOnMap.some(item => item.id.includes(`${layerID}-LINESTRING`))).toBeFalsy();
2064+
expect(layersOnMap.some(item => item.id.includes(`${layerID}-TEXT`))).toBeTruthy();
2065+
expect(layersOnMap.filter(item => item.id.includes(`${layerID}-POINT-`))).toHaveLength(3);
2066+
done();
2067+
};
2068+
viewModel.on({ addlayerssucceeded: callback });
2069+
});
20102070
});

src/mapboxgl/web-map/layer/animate-marker/AnimateMarkerLayerViewModel.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@ export default class AnimateMarkerLayerViewModel extends mapboxgl.Evented {
8888
visibility: 'visible'
8989
},
9090
paint: {
91-
'circle-radius': 0
91+
'circle-radius': 5,
92+
'circle-opacity': 0
9293
}
9394
});
9495

0 commit comments

Comments
 (0)