Skip to content

Commit 3c78aa2

Browse files
committed
修改leaflet 天地图的级别处理逻辑
1 parent af4c51a commit 3c78aa2

File tree

13 files changed

+406
-361
lines changed

13 files changed

+406
-361
lines changed

dist/iclient9-leaflet.js

Lines changed: 277 additions & 262 deletions
Large diffs are not rendered by default.

dist/iclient9-leaflet.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/iclient9-mapboxgl.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48990,7 +48990,7 @@ var StopQueryService = function (_CommonServiceBase) {
4899048990
key: 'processAsync',
4899148991
value: function processAsync(params) {
4899248992
if (!(params instanceof _StopQueryParameters2.default)) {
48993-
return null;
48993+
return;
4899448994
}
4899548995
var me = this,
4899648996
end;

dist/iclient9-mapboxgl.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/iclient9-openlayers.js

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27306,16 +27306,42 @@ var WebMap = function (_ol$Observable) {
2730627306
center = this.mapInfo.center || layerInfo.center,
2730727307
level = this.mapInfo.level || layerInfo.level,
2730827308
bounds = layerInfo.bounds || this.mapInfo.extent,
27309+
origin = [bounds.leftBottom.x, bounds.rightTop.y],
2730927310
extent = [bounds.leftBottom.x, bounds.leftBottom.y, bounds.rightTop.x, bounds.rightTop.y];
2731027311
var projection = this.toProjection(epsgCode, prjCoordSys ? prjCoordSys.type : '', extent);
27311-
2731227312
//var crs = this.createCRS(epsgCode, origin, resolution, boundsL);
27313-
return {
27313+
var viewOptions = {
2731427314
center: [center.x, center.y],
2731527315
zoom: level,
2731627316
projection: projection,
2731727317
extent: extent
2731827318
};
27319+
switch (layerInfo.type) {
27320+
case "TIANDITU_VEC":
27321+
case "TIANDITU_IMG":
27322+
case "TIANDITU_TER":
27323+
viewOptions.minZoom = 1;
27324+
viewOptions.zoom = 1 + viewOptions.zoom;
27325+
break;
27326+
case "BAIDU":
27327+
viewOptions.resolutions = [131072 * 2, 131072, 65536, 32768, 16284, 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1, 0.5];
27328+
viewOptions.zoom = 3 + viewOptions.zoom;
27329+
viewOptions.minZoom = 3;
27330+
break;
27331+
case "WMTS":
27332+
var identifier = layerInfo.identifier;
27333+
var wellKnownScaleSet = identifier.split("_")[0];
27334+
var info = this.getWmtsResolutionsAndMatrixIds(wellKnownScaleSet, layerInfo.units, layerInfo.scales, origin, extent);
27335+
viewOptions.resolutions = info.resolutions;
27336+
break;
27337+
case "CLOUD":
27338+
viewOptions.zoom = 3 + viewOptions.zoom;
27339+
viewOptions.minZoom = 3;
27340+
break;
27341+
default:
27342+
break;
27343+
}
27344+
return viewOptions;
2731927345
}
2732027346

2732127347
/**
@@ -27330,22 +27356,12 @@ var WebMap = function (_ol$Observable) {
2733027356
value: function createLayer(type, layerInfo) {
2733127357
var prjCoordSys = layerInfo.prjCoordSys,
2733227358
epsgCode = prjCoordSys && prjCoordSys.epsgCode || this.mapInfo.epsgCode,
27333-
center = this.mapInfo.center || layerInfo.center,
27334-
level = this.mapInfo.level || layerInfo.level,
2733527359
bounds = layerInfo.bounds || this.mapInfo.extent,
2733627360
scales = layerInfo.scales,
2733727361
opacity = layerInfo.opacity,
2733827362
origin = [bounds.leftBottom.x, bounds.rightTop.y],
2733927363
extent = [bounds.leftBottom.x, bounds.leftBottom.y, bounds.rightTop.x, bounds.rightTop.y];
2734027364
var projection = this.toProjection(epsgCode, prjCoordSys ? prjCoordSys.type : '', extent);
27341-
27342-
//var crs = this.createCRS(epsgCode, origin, resolution, boundsL);
27343-
var viewOptions = {
27344-
center: [center.x, center.y],
27345-
zoom: level,
27346-
projection: projection,
27347-
extent: extent
27348-
};
2734927365
var layer;
2735027366
switch (type) {
2735127367
case "SUPERMAP_REST":
@@ -27367,14 +27383,9 @@ var WebMap = function (_ol$Observable) {
2736727383
case "TIANDITU_VEC":
2736827384
case "TIANDITU_IMG":
2736927385
case "TIANDITU_TER":
27370-
viewOptions.minZoom = 1;
27371-
viewOptions.zoom = 1 + viewOptions.zoom;
2737227386
layer = this.createTiandituLayer(layerInfo, epsgCode);
2737327387
break;
2737427388
case "BAIDU":
27375-
viewOptions.resolutions = [131072 * 2, 131072, 65536, 32768, 16284, 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1, 0.5];
27376-
viewOptions.zoom = 3 + viewOptions.zoom;
27377-
viewOptions.minZoom = 3;
2737827389
layer = new _olDebug2.default.layer.Tile({
2737927390
source: new _olDebug2.default.source.BaiduMap()
2738027391
});
@@ -27392,7 +27403,6 @@ var WebMap = function (_ol$Observable) {
2739227403
var wellKnownScaleSet = identifier.split("_")[0];
2739327404
var layerName = identifier.substring(identifier.indexOf("_") + 1);
2739427405
var info = this.getWmtsResolutionsAndMatrixIds(wellKnownScaleSet, layerInfo.units, scales, origin, extent);
27395-
viewOptions.resolutions = info.resolutions;
2739627406
layer = new _olDebug2.default.layer.Tile({
2739727407
opacity: opacity,
2739827408
source: new _olDebug2.default.source.WMTS({
@@ -27406,8 +27416,6 @@ var WebMap = function (_ol$Observable) {
2740627416
});
2740727417
break;
2740827418
case "CLOUD":
27409-
viewOptions.zoom = 3 + viewOptions.zoom;
27410-
viewOptions.minZoom = 3;
2741127419
layer = new _olDebug2.default.layer.Tile({
2741227420
source: new _olDebug2.default.source.SuperMapCloud()
2741327421
});
@@ -27428,7 +27436,7 @@ var WebMap = function (_ol$Observable) {
2742827436
throw new Error('unSupported Layer Type');
2742927437
}
2743027438
if (layer) {
27431-
this.addLayer(layer, viewOptions);
27439+
this.addLayer(layer);
2743227440
}
2743327441
}
2743427442

@@ -53397,7 +53405,7 @@ var StopQueryService = function (_CommonServiceBase) {
5339753405
key: 'processAsync',
5339853406
value: function processAsync(params) {
5339953407
if (!(params instanceof _StopQueryParameters2.default)) {
53400-
return null;
53408+
return;
5340153409
}
5340253410
var me = this,
5340353411
end;

dist/iclient9-openlayers.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/leaflet/tiandituLayer_ll.html

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,15 @@
1010
<script type="text/javascript">
1111
var map = L.map('map', {
1212
center: [0, 0],
13-
maxZoom: 20,
14-
minZoom: 1,
15-
zoom: 1,
13+
zoom: 0,
1614
crs: L.CRS.TianDiTu_WGS84
1715
});
18-
L.supermap.tiandituTileLayer("http://t{s}.tianditu.com/vec_c/wmts", {
19-
layer: "vec",
20-
tilematrixSet: "c"
16+
L.supermap.tiandituTileLayer({
17+
layerType: "ter",
2118
}).addTo(map);
22-
L.supermap.tiandituTileLayer("http://t{s}.tianditu.com/cva_c/wmts", {
23-
layer: "cva",
24-
tilematrixSet: "c"
19+
L.supermap.tiandituTileLayer({
20+
layerType: "ter",
21+
isLabel:true
2522
}).addTo(map);
2623
</script>
2724
</body>

examples/leaflet/tiandituLayer_mercator.html

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
<script type="text/javascript">
1111
var map = L.map('map', {
1212
center: [0, 0],
13-
maxZoom: 20,
14-
minZoom: 1,
1513
zoom: 1,
1614
crs: L.CRS.TianDiTu_Mercator
1715
});

src/leaflet/core/ExtendsCRS.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export var BaiduCRS = L.CRS.Baidu = L.extend({}, L.CRS.EPSG3857, {
1818

1919
var tdt_WGS84_resolutions = [];
2020

21-
for (let i = 0; i < 20; i++) {
21+
for (let i = 1; i < 19; i++) {
2222
tdt_WGS84_resolutions.push(0.703125 * 2 / (Math.pow(2, i)));
2323
}
2424

@@ -33,7 +33,7 @@ export var TianDiTu_WGS84CRS = L.CRS.TianDiTu_WGS84 = L.Proj.CRS("EPSG:4326",{
3333
});
3434

3535
var tdt_Mercator_resolutions = [];
36-
for (let i = 0; i < 20; i++) {
36+
for (let i = 1; i < 19; i++) {
3737
tdt_Mercator_resolutions.push(78271.5169640203125 * 2 / (Math.pow(2, i)));
3838
}
3939

src/leaflet/mapping/TiandituTileLayer.js

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,43 @@ import {WMTSLayer} from "./TileLayer.WMTS";
1717
*/
1818
export var TiandituTileLayer = WMTSLayer.extend({
1919

20-
defaultURL: 'http://t{s}.tianditu.com/img_w/wmts?"',
21-
20+
layerLabelMap: {
21+
"vec": "cva",
22+
"ter": "cta",
23+
"img": "cia"
24+
},
25+
layerZoomMap: {
26+
"vec": 18,
27+
"ter": 14,
28+
"img": 18
29+
},
2230
options: {
23-
layer: "img",
31+
layerType: "vec", //(vec:矢量图层,vec:矢量标签图层,img:影像图层,cia:影像标签图层,ter:地形,cta:地形标签图层)
32+
isLabel: false,
33+
attribution: "Map Data <a href='http://www.tianditu.com' target='_blank'><img style='background-color:transparent;bottom:2px;opacity:1;' src='http://api.tianditu.com/img/map/logo.png' width='53px' height='22px' opacity='0'></a> with <span>© <a href='http://iclient.supermapol.com' target='_blank'>SuperMap iClient</a></span>",
34+
url: "http://t{s}.tianditu.com/{layer}_{proj}/wmts?",
35+
zoomOffset: 1,
36+
dpi: 96,
2437
style: "default",
25-
tilematrixSet: "w",
2638
format: "tiles",
27-
subdomains: [0, 1, 2, 3, 4, 5, 6, 7],
28-
attribution: "Map Data <a href='http://www.tianditu.com' target='_blank'><img style='background-color:transparent;bottom:2px;opacity:1;' src='http://api.tianditu.com/img/map/logo.png' width='53px' height='22px' opacity='0'></a> with <span>© <a href='http://iclient.supermapol.com' target='_blank'>SuperMap iClient</a></span>"
39+
subdomains: [0, 1, 2, 3, 4, 5, 6, 7]
2940
},
3041

31-
initialize: function (url, options) {
42+
initialize: function (options) {
43+
options = options || {};
3244
L.setOptions(this, options);
33-
this._url = url || this.defaultURL;
45+
this.options.layer = this.options.isLabel ? this.layerLabelMap[options.layerType] : this.options.layerType;
46+
this.options.maxZoom = this.layerZoomMap[this.options.layerType];
47+
WMTSLayer.prototype.initialize.call(this, this.options.url, this.options);
3448
L.stamp(this);
49+
},
50+
onAdd: function (map) {
51+
this.options.tilematrixSet = map.options.crs.code === "EPSG:4326" ? "c" : "w";
52+
this._url = this._url.replace("{layer}", this.options.layer).replace("{proj}", this.options.tilematrixSet);
53+
WMTSLayer.prototype.onAdd.call(this, map);
3554
}
3655
});
37-
export var tiandituTileLayer = function (url, options) {
38-
return new TiandituTileLayer(url, options);
56+
export var tiandituTileLayer = function (options) {
57+
return new TiandituTileLayer(options);
3958
};
4059
L.supermap.tiandituTileLayer = tiandituTileLayer;

0 commit comments

Comments
 (0)