Skip to content

Commit 427905f

Browse files
author
caoxinke
committed
fix OpenLayers瓦片出图参数没有对接完整的缺陷。
1 parent 9830780 commit 427905f

File tree

3 files changed

+71
-23
lines changed

3 files changed

+71
-23
lines changed

dist/iclient9-openlayers.js

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10714,12 +10714,12 @@ ol.supermap.TileSuperMapRest = function (options) {
1071410714
if (options.url === undefined) {
1071510715
return;
1071610716
}
10717-
options.attributions =options.attributions||
10718-
new ol.Attribution({
10719-
html: 'Map Data <a href="http://support.supermap.com.cn/product/iServer.aspx">SuperMap iServer</a> with <a href="http://icltest.supermapol.com/">SuperMap iClient</a>'
10720-
})
10717+
options.attributions = options.attributions ||
10718+
new ol.Attribution({
10719+
html: 'Map Data <a href="http://support.supermap.com.cn/product/iServer.aspx">SuperMap iServer</a> with <a href="http://icltest.supermapol.com/">SuperMap iClient</a>'
10720+
})
1072110721

10722-
var layerUrl = options.url + "/tileImage.png?redirect=false";
10722+
var layerUrl = options.url + "/tileImage.png?";
1072310723
options.serverType = options.serverType || SuperMap.ServerType.ISERVER;
1072410724
//为url添加安全认证信息片段
1072510725
layerUrl = appendCredential(layerUrl, options.serverType);
@@ -10754,24 +10754,48 @@ ol.supermap.TileSuperMapRest = function (options) {
1075410754
return newUrl;
1075510755
}
1075610756

10757+
//是否重定向
10758+
var redirect = false;
10759+
if (options.redirect) {
10760+
redirect = options.opaque;
10761+
}
10762+
layerUrl += "&redirect=" + redirect;
1075710763
//切片是否透明
1075810764
var transparent = true;
1075910765
if (options.opaque !== undefined) {
1076010766
transparent = options.opaque;
1076110767
}
1076210768
layerUrl += "&transparent=" + transparent;
10763-
10764-
//是否使用缓存
10765-
var cacheEnabled = false;
10766-
if (options.cacheEnabled !== undefined) {
10769+
//设置切片原点
10770+
if (options.origin && options.origin instanceof Array) {
10771+
layerUrl += "&origin={\"x\":" + origin[0] + "," + "\"y\":" + origin[1] + "}";
10772+
}
10773+
options.clipRegionEnabled = false;
10774+
if (options.clipRegion instanceof ol.geom.Geometry) {
10775+
options.clipRegionEnabled = true;
10776+
options.clipRegion = ol.supermap.Util.toSuperMapGeometry(new ol.format.GeoJSON().writeGeometryObject(options.clipRegion));
10777+
options.clipRegion = SuperMap.Util.toJSON(SuperMap.REST.ServerGeometry.fromGeometry(options.clipRegion));
10778+
layerUrl += "&clipRegionEnabled=" + options.clipRegionEnabled + "&clipRegion=" + JSON.stringify(options.clipRegion);
10779+
}
10780+
if (!!options.overlapDisplayed && options.overlapDisplayedOptions) {
10781+
options.overlapDisplayedOptions = options.overlapDisplayedOptions;
10782+
layerUrl += "&overlapDisplayed=" + options.overlapDisplayed + "&overlapDisplayedOptions=" + options.overlapDisplayedOptions.toString();
10783+
}
10784+
var cacheEnabled = true;
10785+
if (!!options.cacheEnabled) {
1076710786
cacheEnabled = options.cacheEnabled;
1076810787
}
10769-
layerUrl += "&cacheEnabled=" + cacheEnabled;
10770-
10788+
layerUrl += "&_cache=" + cacheEnabled;
10789+
if (options.cacheEnabled && options.tileversion) {
10790+
layerUrl += "&tileversion=" + tileversion;
10791+
}
1077110792
//如果有layersID,则是在使用专题图
1077210793
if (options.layersID !== undefined) {
1077310794
layerUrl += "&layersID=" + options.layersID;
1077410795
}
10796+
if (options.prjCoordSys) {
10797+
layerUrl += "&prjCoordSys=" + options.prjCoordSys;
10798+
}
1077510799

1077610800
function tileUrlFunction(tileCoord, pixelRatio, projection) {
1077710801
this.projection = projection;

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.

src/openlayers/mapping/TileSuperMapRest.js

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ ol.supermap.TileSuperMapRest = function (options) {
66
if (options.url === undefined) {
77
return;
88
}
9-
options.attributions =options.attributions||
10-
new ol.Attribution({
11-
html: 'Map Data <a href="http://support.supermap.com.cn/product/iServer.aspx">SuperMap iServer</a> with <a href="http://icltest.supermapol.com/">SuperMap iClient</a>'
12-
})
9+
options.attributions = options.attributions ||
10+
new ol.Attribution({
11+
html: 'Map Data <a href="http://support.supermap.com.cn/product/iServer.aspx">SuperMap iServer</a> with <a href="http://icltest.supermapol.com/">SuperMap iClient</a>'
12+
})
1313

14-
var layerUrl = options.url + "/tileImage.png?redirect=false";
14+
var layerUrl = options.url + "/tileImage.png?";
1515
options.serverType = options.serverType || SuperMap.ServerType.ISERVER;
1616
//为url添加安全认证信息片段
1717
layerUrl = appendCredential(layerUrl, options.serverType);
@@ -46,24 +46,48 @@ ol.supermap.TileSuperMapRest = function (options) {
4646
return newUrl;
4747
}
4848

49+
//是否重定向
50+
var redirect = false;
51+
if (options.redirect) {
52+
redirect = options.opaque;
53+
}
54+
layerUrl += "&redirect=" + redirect;
4955
//切片是否透明
5056
var transparent = true;
5157
if (options.opaque !== undefined) {
5258
transparent = options.opaque;
5359
}
5460
layerUrl += "&transparent=" + transparent;
55-
56-
//是否使用缓存
57-
var cacheEnabled = false;
58-
if (options.cacheEnabled !== undefined) {
61+
//设置切片原点
62+
if (options.origin && options.origin instanceof Array) {
63+
layerUrl += "&origin={\"x\":" + origin[0] + "," + "\"y\":" + origin[1] + "}";
64+
}
65+
options.clipRegionEnabled = false;
66+
if (options.clipRegion instanceof ol.geom.Geometry) {
67+
options.clipRegionEnabled = true;
68+
options.clipRegion = ol.supermap.Util.toSuperMapGeometry(new ol.format.GeoJSON().writeGeometryObject(options.clipRegion));
69+
options.clipRegion = SuperMap.Util.toJSON(SuperMap.REST.ServerGeometry.fromGeometry(options.clipRegion));
70+
layerUrl += "&clipRegionEnabled=" + options.clipRegionEnabled + "&clipRegion=" + JSON.stringify(options.clipRegion);
71+
}
72+
if (!!options.overlapDisplayed && options.overlapDisplayedOptions) {
73+
options.overlapDisplayedOptions = options.overlapDisplayedOptions;
74+
layerUrl += "&overlapDisplayed=" + options.overlapDisplayed + "&overlapDisplayedOptions=" + options.overlapDisplayedOptions.toString();
75+
}
76+
var cacheEnabled = true;
77+
if (!!options.cacheEnabled) {
5978
cacheEnabled = options.cacheEnabled;
6079
}
61-
layerUrl += "&cacheEnabled=" + cacheEnabled;
62-
80+
layerUrl += "&_cache=" + cacheEnabled;
81+
if (options.cacheEnabled && options.tileversion) {
82+
layerUrl += "&tileversion=" + tileversion;
83+
}
6384
//如果有layersID,则是在使用专题图
6485
if (options.layersID !== undefined) {
6586
layerUrl += "&layersID=" + options.layersID;
6687
}
88+
if (options.prjCoordSys) {
89+
layerUrl += "&prjCoordSys=" + options.prjCoordSys;
90+
}
6791

6892
function tileUrlFunction(tileCoord, pixelRatio, projection) {
6993
this.projection = projection;

0 commit comments

Comments
 (0)