Skip to content

Commit c9505c7

Browse files
committed
fix leaflet客户端专题图缩放不同步问题&ol3标签专题图接口问题
1 parent 7decb4c commit c9505c7

File tree

6 files changed

+57
-32
lines changed

6 files changed

+57
-32
lines changed

dist/iclient9-leaflet.js

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27543,7 +27543,7 @@ var ThemeLayer = exports.ThemeLayer = _leaflet2["default"].Layer.extend({
2754327543
getEvents: function getEvents() {
2754427544
var me = this;
2754527545
var events = {
27546-
zoomend: this._reset,
27546+
zoomend: me._reset,
2754727547
moveend: me._reset,
2754827548
resize: me._resize
2754927549
};
@@ -27572,13 +27572,12 @@ var ThemeLayer = exports.ThemeLayer = _leaflet2["default"].Layer.extend({
2757227572
onAdd: function onAdd(map) {
2757327573
var me = this;
2757427574

27575+
me.map = me._map = map;
2757527576
me._initContainer();
2757627577
if (!me.levelRenderer) {
2757727578
map.removeLayer(me);
2757827579
return;
2757927580
}
27580-
27581-
me.map = me._map = map;
2758227581
//初始化渲染器
2758327582
var size = map.getSize();
2758427583
me.container.style.width = size.x + "px";
@@ -27589,7 +27588,6 @@ var ThemeLayer = exports.ThemeLayer = _leaflet2["default"].Layer.extend({
2758927588
me.renderer.clear();
2759027589
if (me.features && me.features.length > 0) {
2759127590
me._reset();
27592-
me.redrawThematicFeatures(me.map.getBounds());
2759327591
}
2759427592

2759527593
//处理用户预先(在图层添加到 map 前)监听的事件
@@ -27599,6 +27597,8 @@ var ThemeLayer = exports.ThemeLayer = _leaflet2["default"].Layer.extend({
2759927597
me.currentMousePosition = _leaflet2["default"].point(xy.x + me.movingOffset[0], xy.y + me.movingOffset[1]);
2760027598
};
2760127599
map.on("mousemove", me.mouseMoveHandler);
27600+
27601+
me.update();
2760227602
},
2760327603

2760427604
/**
@@ -27901,10 +27901,16 @@ var ThemeLayer = exports.ThemeLayer = _leaflet2["default"].Layer.extend({
2790127901

2790227902
_initContainer: function _initContainer() {
2790327903
var parentContainer = this.getPane();
27904+
var animated = this._map.options.zoomAnimation && _leaflet2["default"].Browser.any3d;
2790427905
var className = this.options.name || "themeLayer";
27906+
className += ' leaflet-layer leaflet-zoom-' + (animated ? 'animated' : 'hide');
2790527907
this.container = _leaflet2["default"].DomUtil.create("div", className, parentContainer);
27908+
27909+
var originProp = _leaflet2["default"].DomUtil.testProp(['transformOrigin', 'WebkitTransformOrigin', 'msTransformOrigin']);
27910+
this.container.style[originProp] = '50% 50%';
27911+
2790627912
this.container.style.position = "absolute";
27907-
this.container.style.zIndex = 100;
27913+
this.container.style.zIndex = 200;
2790827914
},
2790927915

2791027916
_zoomAnim: function _zoomAnim(evt) {
@@ -27916,7 +27922,7 @@ var ThemeLayer = exports.ThemeLayer = _leaflet2["default"].Layer.extend({
2791627922
if (_leaflet2["default"].DomUtil.setTransform) {
2791727923
_leaflet2["default"].DomUtil.setTransform(this.container, offset, scale);
2791827924
} else {
27919-
_leaflet2["default"].DomUtil.setPosition(this.container, offset);
27925+
this.container.style[_leaflet2["default"].DomUtil.TRANSFORM] = _leaflet2["default"].DomUtil.getTranslateString(offset) + ' scale(' + scale + ')';
2792027926
}
2792127927
},
2792227928

@@ -27933,14 +27939,20 @@ var ThemeLayer = exports.ThemeLayer = _leaflet2["default"].Layer.extend({
2793327939
var me = this;
2793427940
var latLngBounds = me._map.getBounds();
2793527941
me.update(latLngBounds);
27942+
2793627943
var topLeft = me._map.containerPointToLayerPoint([0, 0]);
2793727944
_leaflet2["default"].DomUtil.setPosition(me.container, topLeft);
2793827945
var size = me._map.getSize();
27939-
me.container.style.width = size.x + 'px';
27940-
me.container.style.height = size.y + 'px';
27946+
if (parseFloat(me.container.width) !== parseFloat(size.x)) {
27947+
me.container.width = size.x + 'px';
27948+
}
27949+
if (parseFloat(me.container.height) !== parseFloat(size.y)) {
27950+
me.container.height = size.y + 'px';
27951+
}
27952+
me.redraw();
2794127953
},
2794227954

27943-
//通知渲染器的尺寸变化
27955+
//通知渲染器的尺寸变化
2794427956
_resize: function _resize() {
2794527957
var me = this;
2794627958
var newSize = me._map.getSize();
@@ -93984,10 +93996,10 @@ module.exports = {
9398493996
"_requiredBy": [
9398593997
"/"
9398693998
],
93987-
"_resolved": "https://registry.npmjs.org/proj4/-/proj4-2.3.15.tgz",
93999+
"_resolved": "http://registry.npm.taobao.org/proj4/download/proj4-2.3.15.tgz",
9398894000
"_shasum": "5ad06e8bca30be0ffa389a49e4565f51f06d089e",
9398994001
"_spec": "proj4@2.3.15",
93990-
"_where": "G:\\github-iClient\\iClient9",
94002+
"_where": "F:\\dev\\iClient",
9399194003
"author": "",
9399294004
"bugs": {
9399394005
"url": "https://github.com/proj4js/proj4js/issues"

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-openlayers.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21306,10 +21306,10 @@ var Label = function (_GeoFeature) {
2130621306
}, {
2130721307
key: 'rotationBounds',
2130821308
value: function rotationBounds(bounds, rotationCenterPoi, angle) {
21309-
var ltPoi = new _olDebug2.default.geom.Point(bounds.left, bounds.top);
21310-
var rtPoi = new _olDebug2.default.geom.Point(bounds.right, bounds.top);
21311-
var rbPoi = new _olDebug2.default.geom.Point(bounds.right, bounds.bottom);
21312-
var lbPoi = new _olDebug2.default.geom.Point(bounds.left, bounds.bottom);
21309+
var ltPoi = new _olDebug2.default.geom.Point([bounds.left, bounds.top]);
21310+
var rtPoi = new _olDebug2.default.geom.Point([bounds.right, bounds.top]);
21311+
var rbPoi = new _olDebug2.default.geom.Point([bounds.right, bounds.bottom]);
21312+
var lbPoi = new _olDebug2.default.geom.Point([bounds.left, bounds.bottom]);
2131321313

2131421314
var ver = [];
2131521315
ver.push(this.getRotatedLocation(ltPoi.getCoordinates()[0], ltPoi.getCoordinates()[1], rotationCenterPoi.x, rotationCenterPoi.y, angle));
@@ -92074,10 +92074,10 @@ module.exports = {
9207492074
"_requiredBy": [
9207592075
"/"
9207692076
],
92077-
"_resolved": "https://registry.npmjs.org/proj4/-/proj4-2.3.15.tgz",
92077+
"_resolved": "http://registry.npm.taobao.org/proj4/download/proj4-2.3.15.tgz",
9207892078
"_shasum": "5ad06e8bca30be0ffa389a49e4565f51f06d089e",
9207992079
"_spec": "proj4@2.3.15",
92080-
"_where": "G:\\github-iClient\\iClient9",
92080+
"_where": "F:\\dev\\iClient",
9208192081
"author": "",
9208292082
"bugs": {
9208392083
"url": "https://github.com/proj4js/proj4js/issues"

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/leaflet/overlay/theme/ThemeLayer.js

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export var ThemeLayer = L.Layer.extend({
4242
getEvents: function () {
4343
var me = this;
4444
var events = {
45-
zoomend: this._reset,
45+
zoomend: me._reset,
4646
moveend: me._reset,
4747
resize: me._resize
4848
};
@@ -71,13 +71,13 @@ export var ThemeLayer = L.Layer.extend({
7171
onAdd: function (map) {
7272
var me = this;
7373

74+
75+
me.map = me._map = map;
7476
me._initContainer();
7577
if (!me.levelRenderer) {
7678
map.removeLayer(me);
7779
return;
7880
}
79-
80-
me.map = me._map = map;
8181
//初始化渲染器
8282
var size = map.getSize();
8383
me.container.style.width = size.x + "px";
@@ -88,7 +88,6 @@ export var ThemeLayer = L.Layer.extend({
8888
me.renderer.clear();
8989
if (me.features && me.features.length > 0) {
9090
me._reset();
91-
me.redrawThematicFeatures(me.map.getBounds());
9291
}
9392

9493
//处理用户预先(在图层添加到 map 前)监听的事件
@@ -98,6 +97,8 @@ export var ThemeLayer = L.Layer.extend({
9897
me.currentMousePosition = L.point(xy.x + me.movingOffset[0], xy.y + me.movingOffset[1]);
9998
};
10099
map.on("mousemove", me.mouseMoveHandler);
100+
101+
me.update();
101102
},
102103

103104
/**
@@ -401,10 +402,16 @@ export var ThemeLayer = L.Layer.extend({
401402

402403
_initContainer: function () {
403404
var parentContainer = this.getPane();
405+
var animated = this._map.options.zoomAnimation && L.Browser.any3d;
404406
var className = this.options.name || "themeLayer";
407+
className += ' leaflet-layer leaflet-zoom-' + (animated ? 'animated' : 'hide');
405408
this.container = L.DomUtil.create("div", className, parentContainer);
409+
410+
var originProp = L.DomUtil.testProp(['transformOrigin', 'WebkitTransformOrigin', 'msTransformOrigin']);
411+
this.container.style[originProp] = '50% 50%';
412+
406413
this.container.style.position = "absolute";
407-
this.container.style.zIndex = 100;
414+
this.container.style.zIndex = 200;
408415
},
409416

410417

@@ -416,7 +423,7 @@ export var ThemeLayer = L.Layer.extend({
416423
if (L.DomUtil.setTransform) {
417424
L.DomUtil.setTransform(this.container, offset, scale);
418425
} else {
419-
L.DomUtil.setPosition(this.container, offset);
426+
this.container.style[L.DomUtil.TRANSFORM] = L.DomUtil.getTranslateString(offset) + ' scale(' + scale + ')';
420427
}
421428
},
422429

@@ -433,14 +440,20 @@ export var ThemeLayer = L.Layer.extend({
433440
var me = this;
434441
var latLngBounds = me._map.getBounds();
435442
me.update(latLngBounds);
443+
436444
var topLeft = me._map.containerPointToLayerPoint([0, 0]);
437445
L.DomUtil.setPosition(me.container, topLeft);
438446
var size = me._map.getSize();
439-
me.container.style.width = size.x + 'px';
440-
me.container.style.height = size.y + 'px';
447+
if (parseFloat(me.container.width) !== parseFloat(size.x)) {
448+
me.container.width = size.x + 'px';
449+
}
450+
if (parseFloat(me.container.height) !== parseFloat(size.y)) {
451+
me.container.height = size.y + 'px';
452+
}
453+
me.redraw();
441454
},
442455

443-
//通知渲染器的尺寸变化
456+
//通知渲染器的尺寸变化
444457
_resize: function () {
445458
var me = this;
446459
var newSize = me._map.getSize();

src/openlayers/overlay/Label.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -658,10 +658,10 @@ export default class Label extends GeoFeature {
658658
* @return {Array<Object>} bounds旋转后形成的多边形节点数组。是一个四边形,形如:[{"x":1,"y":1},{"x":3,"y":1},{"x":6,"y":4},{"x":2,"y":10},{"x":1,"y":1}]
659659
*/
660660
rotationBounds(bounds, rotationCenterPoi, angle) {
661-
var ltPoi = new ol.geom.Point(bounds.left, bounds.top);
662-
var rtPoi = new ol.geom.Point(bounds.right, bounds.top);
663-
var rbPoi = new ol.geom.Point(bounds.right, bounds.bottom);
664-
var lbPoi = new ol.geom.Point(bounds.left, bounds.bottom);
661+
var ltPoi = new ol.geom.Point([bounds.left, bounds.top]);
662+
var rtPoi = new ol.geom.Point([bounds.right, bounds.top]);
663+
var rbPoi = new ol.geom.Point([bounds.right, bounds.bottom]);
664+
var lbPoi = new ol.geom.Point([bounds.left, bounds.bottom]);
665665

666666
var ver = [];
667667
ver.push(this.getRotatedLocation(ltPoi.getCoordinates()[0], ltPoi.getCoordinates()[1], rotationCenterPoi.x, rotationCenterPoi.y, angle));

0 commit comments

Comments
 (0)