Skip to content

Commit 63f77f2

Browse files
【fix】修复各端mapv的unit兼容'm'的bug review by songym
1 parent 1413801 commit 63f77f2

34 files changed

+145678
-18364
lines changed

dist/classic/iclient-classic-es6.js

Lines changed: 65327 additions & 8184 deletions
Large diffs are not rendered by default.

dist/classic/iclient-classic-es6.min.js

Lines changed: 1353 additions & 45 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/classic/iclient-classic.js

Lines changed: 76325 additions & 9092 deletions
Large diffs are not rendered by default.

dist/classic/iclient-classic.min.js

Lines changed: 1210 additions & 47 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/leaflet/iclient-leaflet-es6.js

Lines changed: 84 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -42902,6 +42902,29 @@ class ArrayStatistic {
4290242902

4290342903
}
4290442904
SuperMap.ArrayStatistic = ArrayStatistic;
42905+
// CONCATENATED MODULE: ./src/common/util/MapCalculateUtil.js
42906+
42907+
42908+
var getMeterPerMapUnit = function(mapUnit) {
42909+
var earchRadiusInMeters = 6378137;
42910+
var meterPerMapUnit;
42911+
if (mapUnit === Unit.METER) {
42912+
meterPerMapUnit = 1;
42913+
} else if (mapUnit === Unit.DEGREE) {
42914+
// 每度表示多少米。
42915+
meterPerMapUnit = (Math.PI * 2 * earchRadiusInMeters) / 360;
42916+
} else if (mapUnit === Unit.KILOMETER) {
42917+
meterPerMapUnit = 1.0e-3;
42918+
} else if (mapUnit === Unit.INCH) {
42919+
meterPerMapUnit = 1 / 2.5399999918e-2;
42920+
} else if (mapUnit === Unit.FOOT) {
42921+
meterPerMapUnit = 0.3048;
42922+
} else {
42923+
return meterPerMapUnit;
42924+
}
42925+
return meterPerMapUnit;
42926+
};
42927+
4290542928
// CONCATENATED MODULE: ./src/common/util/index.js
4290642929
/* Copyright© 2000 - 2019 SuperMap Software Co.Ltd. All rights reserved.
4290742930
* This program are made available under the terms of the Apache License, Version 2.0
@@ -42913,6 +42936,8 @@ SuperMap.ArrayStatistic = ArrayStatistic;
4291342936

4291442937

4291542938

42939+
42940+
4291642941
// EXTERNAL MODULE: ./node_modules/lodash.topairs/index.js
4291742942
var lodash_topairs = __webpack_require__(13);
4291842943
var lodash_topairs_default = /*#__PURE__*/__webpack_require__.n(lodash_topairs);
@@ -77179,28 +77204,30 @@ external_L_default.a.supermap.CommontypesConversion = CommontypesConversion_Comm
7717977204
* which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/
7718077205

7718177206

77207+
7718277208
/**
7718377209
* @namespace L.Util
7718477210
* @category BaseTypes Util
7718577211
*/
7718677212
var supermap_callbacks = {};
7718777213
external_L_default.a.Util.supermap_callbacks = supermap_callbacks;
77188-
var toGeoJSON = function (feature) {
77214+
var toGeoJSON = function(feature) {
7718977215
if (!feature) {
7719077216
return feature;
7719177217
}
7719277218
return new GeoJSON_GeoJSON().toGeoJSON(feature);
7719377219
};
77194-
var toSuperMapGeometry = function (geometry) {
77220+
var toSuperMapGeometry = function(geometry) {
7719577221
if (!geometry) {
7719677222
return geometry;
7719777223
}
77198-
var result, format = new GeoJSON_GeoJSON();
77199-
if (["FeatureCollection", "Feature", "Geometry"].indexOf(geometry.type) != -1) {
77224+
var result,
77225+
format = new GeoJSON_GeoJSON();
77226+
if (['FeatureCollection', 'Feature', 'Geometry'].indexOf(geometry.type) != -1) {
7720077227
result = format.read(geometry, geometry.type);
77201-
} else if (typeof geometry.toGeoJSON === "function") {
77228+
} else if (typeof geometry.toGeoJSON === 'function') {
7720277229
var geojson = geometry.toGeoJSON();
77203-
result = (geojson) ? format.read(geojson, geojson.type) : geometry;
77230+
result = geojson ? format.read(geojson, geojson.type) : geometry;
7720477231
}
7720577232

7720677233
var serverResult = result;
@@ -77209,83 +77236,68 @@ var toSuperMapGeometry = function (geometry) {
7720977236
serverResult = result[0];
7721077237
} else if (result.length > 1) {
7721177238
serverResult = [];
77212-
result.map(function (item) {
77239+
result.map(function(item) {
7721377240
serverResult.push(item.geometry);
7721477241
return item;
7721577242
});
7721677243
}
7721777244
}
7721877245

77219-
return (serverResult && serverResult.geometry) ? serverResult.geometry : serverResult;
77220-
77246+
return serverResult && serverResult.geometry ? serverResult.geometry : serverResult;
7722177247
};
77248+
var Util_getMeterPerMapUnit = getMeterPerMapUnit;
7722277249

77223-
var getMeterPerMapUnit = function (mapUnit) {
77224-
var earchRadiusInMeters = 6378137;
77225-
var meterPerMapUnit;
77226-
if (mapUnit === Unit.METER) {
77227-
meterPerMapUnit = 1;
77228-
} else if (mapUnit === Unit.DEGREE) {
77229-
// 每度表示多少米。
77230-
meterPerMapUnit = Math.PI * 2 * earchRadiusInMeters / 360;
77231-
} else if (mapUnit === Unit.KILOMETER) {
77232-
meterPerMapUnit = 1.0E-3;
77233-
} else if (mapUnit === Unit.INCH) {
77234-
meterPerMapUnit = 1 / 2.5399999918E-2;
77235-
} else if (mapUnit === Unit.FOOT) {
77236-
meterPerMapUnit = 0.3048;
77237-
} else {
77238-
return meterPerMapUnit;
77239-
}
77240-
return meterPerMapUnit;
77241-
};
77242-
77243-
var resolutionToScale = function (resolution, dpi, mapUnit) {
77250+
var resolutionToScale = function(resolution, dpi, mapUnit) {
7724477251
var inchPerMeter = 1 / 0.0254;
7724577252
// 地球半径。
77246-
var meterPerMapUnit = getMeterPerMapUnit(mapUnit);
77253+
var meterPerMapUnit = Util_getMeterPerMapUnit(mapUnit);
7724777254
var scale = resolution * dpi * inchPerMeter * meterPerMapUnit;
7724877255
scale = 1 / scale;
7724977256
return scale;
7725077257
};
77251-
var scaleToResolution = function (scale, dpi, mapUnit) {
77258+
var scaleToResolution = function(scale, dpi, mapUnit) {
7725277259
var inchPerMeter = 1 / 0.0254;
77253-
var meterPerMapUnitValue = getMeterPerMapUnit(mapUnit);
77260+
var meterPerMapUnitValue = Util_getMeterPerMapUnit(mapUnit);
7725477261
var resolution = scale * dpi * inchPerMeter * meterPerMapUnitValue;
7725577262
resolution = 1 / resolution;
7725677263
return resolution;
7725777264
};
7725877265

77259-
var GetResolutionFromScaleDpi = function (scale, dpi, coordUnit, datumAxis) {
77266+
var GetResolutionFromScaleDpi = function(scale, dpi, coordUnit, datumAxis) {
7726077267
var resolution = null,
7726177268
ratio = 10000;
7726277269
//用户自定义地图的Options时,若未指定该参数的值,则系统默认为6378137米,即WGS84参考系的椭球体长半轴。
7726377270
datumAxis = datumAxis || 6378137;
77264-
coordUnit = coordUnit || "";
77271+
coordUnit = coordUnit || '';
7726577272
if (scale > 0 && dpi > 0) {
7726677273
scale = external_L_default.a.Util.NormalizeScale(scale);
77267-
if (coordUnit.toLowerCase() === "degree" || coordUnit.toLowerCase() === "degrees" || coordUnit.toLowerCase() === "dd") {
77274+
if (
77275+
coordUnit.toLowerCase() === 'degree' ||
77276+
coordUnit.toLowerCase() === 'degrees' ||
77277+
coordUnit.toLowerCase() === 'dd'
77278+
) {
7726877279
//scale = SuperMap.Util.normalizeScale(scale);
77269-
resolution = 0.0254 * ratio / dpi / scale / ((Math.PI * 2 * datumAxis) / 360) / ratio;
77280+
resolution = (0.0254 * ratio) / dpi / scale / ((Math.PI * 2 * datumAxis) / 360) / ratio;
7727077281
return resolution;
7727177282
} else {
77272-
resolution = 0.0254 * ratio / dpi / scale / ratio;
77283+
resolution = (0.0254 * ratio) / dpi / scale / ratio;
7727377284
return resolution;
7727477285
}
7727577286
}
7727677287
return -1;
7727777288
};
77278-
var NormalizeScale = function (scale) {
77279-
return (scale > 1.0) ? (1.0 / scale) : scale;
77289+
var NormalizeScale = function(scale) {
77290+
return scale > 1.0 ? 1.0 / scale : scale;
7728077291
};
7728177292

7728277293
external_L_default.a.Util.toGeoJSON = toGeoJSON;
7728377294
external_L_default.a.Util.toSuperMapGeometry = toSuperMapGeometry;
7728477295
external_L_default.a.Util.resolutionToScale = resolutionToScale;
7728577296
external_L_default.a.Util.scaleToResolution = scaleToResolution;
77286-
external_L_default.a.Util.getMeterPerMapUnit = getMeterPerMapUnit;
77297+
external_L_default.a.Util.getMeterPerMapUnit = Util_getMeterPerMapUnit;
7728777298
external_L_default.a.Util.GetResolutionFromScaleDpi = GetResolutionFromScaleDpi;
7728877299
external_L_default.a.Util.NormalizeScale = NormalizeScale;
77300+
7728977301
// CONCATENATED MODULE: ./src/leaflet/core/Transform.js
7729077302
/* Copyright© 2000 - 2019 SuperMap Software Co.Ltd. All rights reserved.
7729177303
* This program are made available under the terms of the Apache License, Version 2.0
@@ -77832,11 +77844,9 @@ var ImageMapLayer = external_L_["Layer"].extend({
7783277844
params.push('rasterfunction=' + JSON.stringify(options.rasterfunction));
7783377845
}
7783477846

77835-
if (options.clipRegionEnabled && options.clipRegion instanceof external_L_default.a.Path) {
77836-
options.clipRegion = external_L_default.a.Util.toSuperMapGeometry(options.clipRegion.toGeoJSON());
77837-
options.clipRegion = Util.toJSON(ServerGeometry_ServerGeometry.fromGeometry(options.clipRegion));
77847+
if (options.clipRegionEnabled && options.clipRegion) {
7783877848
params.push('clipRegionEnabled=' + options.clipRegionEnabled);
77839-
params.push('clipRegion=' + JSON.stringify(options.clipRegion));
77849+
params.push('clipRegion=' + JSON.stringify(ServerGeometry_ServerGeometry.fromGeometry(external_L_["Util"].toSuperMapGeometry(options.clipRegion))));
7784077850
}
7784177851

7784277852
if (options.overlapDisplayed === false) {
@@ -78552,9 +78562,8 @@ var TiledMapLayer = external_L_default.a.TileLayer.extend({
7855278562
params["layersID"] = options.layersID.toString();
7855378563
}
7855478564

78555-
if (options.clipRegionEnabled && options.clipRegion instanceof external_L_default.a.Path) {
78556-
options.clipRegion = toSuperMapGeometry(options.clipRegion.toGeoJSON());
78557-
options.clipRegion = Util.toJSON(ServerGeometry_ServerGeometry.fromGeometry(options.clipRegion));
78565+
if (options.clipRegionEnabled && options.clipRegion) {
78566+
options.clipRegion = ServerGeometry_ServerGeometry.fromGeometry(toSuperMapGeometry(options.clipRegion));
7855878567
params["clipRegionEnabled"] = options.clipRegionEnabled;
7855978568
params["clipRegion"] = JSON.stringify(options.clipRegion);
7856078569
}
@@ -83524,6 +83533,7 @@ var external_function_try_return_mapv_catch_e_return_ = __webpack_require__(6);
8352483533

8352583534

8352683535

83536+
8352783537
var BaseLayer = external_function_try_return_mapv_catch_e_return_["baiduMapLayer"] ? external_function_try_return_mapv_catch_e_return_["baiduMapLayer"].__proto__ : Function;
8352883538

8352983539
/**
@@ -83766,6 +83776,8 @@ class MapVRenderer_MapVRenderer extends BaseLayer {
8376683776

8376783777
var resolutionX = dw / mapCanvas.x,
8376883778
resolutionY = dh / mapCanvas.y;
83779+
// 一个像素是多少米
83780+
var zoomUnit = Util_getMeterPerMapUnit('DEGREE') * resolutionX;
8376983781
//var centerPx = map.latLngToLayerPoint(map.getCenter());
8377083782

8377183783
//获取屏幕左上角的地理坐标坐标
@@ -83804,13 +83816,29 @@ class MapVRenderer_MapVRenderer extends BaseLayer {
8380483816

8380583817
this.processData(data);
8380683818

83807-
self.options._size = self.options.size;
83808-
8380983819
var worldPoint = map.latLngToContainerPoint(external_L_default.a.latLng(0, 0));
8381083820
var pixel = {
8381183821
x: worldPoint.x - topLeftPX.x,
8381283822
y: worldPoint.y - topLeftPX.y
8381383823
};
83824+
83825+
// 兼容unit为'm'的情况
83826+
if (self.options.unit === 'm') {
83827+
if (self.options.size) {
83828+
self.options._size = self.options.size / zoomUnit;
83829+
}
83830+
if (self.options.width) {
83831+
self.options._width = self.options.width / zoomUnit;
83832+
}
83833+
if (self.options.height) {
83834+
self.options._height = self.options.height / zoomUnit;
83835+
}
83836+
} else {
83837+
self.options._size = self.options.size;
83838+
self.options._height = self.options.height;
83839+
self.options._width = self.options.width;
83840+
}
83841+
8381483842
this.drawContext(context, data, self.options, pixel);
8381583843

8381683844
self.options.updateCallback && self.options.updateCallback(time);
@@ -85208,7 +85236,7 @@ var GraphicCanvasRenderer = external_L_default.a.Class.extend({
8520885236
let me = this,
8520985237
layer = me.layer,
8521085238
map = layer._map;
85211-
this.layer._renderer._ctx.canvas.style.cursor = 'pointer';
85239+
8521285240
let graphics = layer._getGraphicsInBounds();
8521385241
evt.target = null;
8521485242
for (let i = graphics.length - 1; i >= 0; i--) {
@@ -85234,12 +85262,14 @@ var GraphicCanvasRenderer = external_L_default.a.Class.extend({
8523485262
}
8523585263
bounds = external_L_default.a.bounds(p1, p2);
8523685264
if (bounds.contains(map.latLngToLayerPoint(evt.latlng))) {
85265+
this.layer._renderer._ctx.canvas.style.cursor = 'pointer';
8523785266
evt.target = graphics[i];
8523885267
if (evt.type === 'click' && layer.options.onClick) {
8523985268
layer.options.onClick.call(layer, graphics[i], evt);
8524085269
}
8524185270
return;
8524285271
}
85272+
this.layer._renderer._ctx.canvas.style.cursor = 'auto';
8524385273
}
8524485274
},
8524585275

@@ -97509,7 +97539,7 @@ external_L_default.a.supermap.components.dataServiceQuery = dataServiceQueryView
9750997539
/* concated harmony reexport crs */__webpack_require__.d(__webpack_exports__, "crs", function() { return Proj4Leaflet_crs; });
9751097540
/* concated harmony reexport toGeoJSON */__webpack_require__.d(__webpack_exports__, "toGeoJSON", function() { return toGeoJSON; });
9751197541
/* concated harmony reexport toSuperMapGeometry */__webpack_require__.d(__webpack_exports__, "toSuperMapGeometry", function() { return toSuperMapGeometry; });
97512-
/* concated harmony reexport getMeterPerMapUnit */__webpack_require__.d(__webpack_exports__, "getMeterPerMapUnit", function() { return getMeterPerMapUnit; });
97542+
/* concated harmony reexport getMeterPerMapUnit */__webpack_require__.d(__webpack_exports__, "getMeterPerMapUnit", function() { return Util_getMeterPerMapUnit; });
9751397543
/* concated harmony reexport resolutionToScale */__webpack_require__.d(__webpack_exports__, "resolutionToScale", function() { return resolutionToScale; });
9751497544
/* concated harmony reexport scaleToResolution */__webpack_require__.d(__webpack_exports__, "scaleToResolution", function() { return scaleToResolution; });
9751597545
/* concated harmony reexport GetResolutionFromScaleDpi */__webpack_require__.d(__webpack_exports__, "GetResolutionFromScaleDpi", function() { return GetResolutionFromScaleDpi; });
@@ -97888,4 +97918,5 @@ var ChangeTileVersion = __webpack_require__(70);
9788897918
// removed by extract-text-webpack-plugin
9788997919

9789097920
/***/ })
97891-
/******/ ]);
97921+
/******/ ]);
97922+
//# sourceMappingURL=iclient-leaflet-es6.js.map

0 commit comments

Comments
 (0)