@vtx/map 1.0.2 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -91,6 +91,12 @@ var VortexAMap = function (_React$Component) {
91
91
  rectangle: []
92
92
  }
93
93
  };
94
+ _this.AnchorConstant = {
95
+ tr: 'RT',
96
+ tl: 'LT',
97
+ bl: 'LB',
98
+ br: 'RB'
99
+ };
94
100
  _this.loadMapJs();
95
101
  return _this;
96
102
  }
@@ -103,7 +109,7 @@ var VortexAMap = function (_React$Component) {
103
109
  resolve(window.AMap);
104
110
  } else {
105
111
  $.getScript(_default2.default.mapServerURL + '/A_content.js', function () {
106
- $.getScript('//webapi.amap.com/maps?v=1.4.14&key=e59ef9272e3788ac59d9a22f0f8cf9fe&plugin=AMap.Geolocation,AMap.MarkerClusterer,AMap.Scale,AMap.ToolBar,AMap.DistrictSearch,AMap.RangingTool,AMap.MouseTool,AMap.PolyEditor,AMap.CircleEditor,AMap.PlaceSearch,AMap.Heatmap', function () {
112
+ $.getScript('//webapi.amap.com/maps?v=1.4.14&key=e59ef9272e3788ac59d9a22f0f8cf9fe&plugin=AMap.Geolocation,AMap.MarkerClusterer,AMap.MapType,AMap.Scale,AMap.ToolBar,AMap.DistrictSearch,AMap.RangingTool,AMap.MouseTool,AMap.PolyEditor,AMap.CircleEditor,AMap.PlaceSearch,AMap.Heatmap', function () {
107
113
  var PointCollection = new Promise(function (resolve, reject) {
108
114
  $.getScript(_default2.default.mapServerURL + '/GPointCollection.js', function () {
109
115
  resolve();
@@ -111,7 +117,7 @@ var VortexAMap = function (_React$Component) {
111
117
  });
112
118
  Promise.all([PointCollection]).then(function () {
113
119
  (function setTime() {
114
- var allEvents = [window.AMap, 'MarkerClusterer', 'Scale', 'ToolBar', 'DistrictSearch', 'RangingTool', 'MouseTool', 'PolyEditor', 'CircleEditor', 'PlaceSearch', 'Heatmap'];
120
+ var allEvents = [window.AMap, 'MarkerClusterer', 'MapType', 'Scale', 'ToolBar', 'DistrictSearch', 'RangingTool', 'MouseTool', 'PolyEditor', 'CircleEditor', 'PlaceSearch', 'Heatmap'];
115
121
  var isLoading = true;
116
122
  for (var i = 0; i <= allEvents.length - 1; i++) {
117
123
  if (i === 0) {
@@ -208,7 +214,10 @@ var VortexAMap = function (_React$Component) {
208
214
  if (showControl) {
209
215
  t.showControl();
210
216
  }
211
-
217
+ //添加地图类型控件
218
+ if (t.props.satelliteSwitch) {
219
+ t.showMapTypeControl();
220
+ }
212
221
  //画边界线
213
222
  if (boundaryName instanceof Array && boundaryName.length > 0) {
214
223
  t.addBaiduBoundary(boundaryName);
@@ -735,11 +744,87 @@ var VortexAMap = function (_React$Component) {
735
744
 
736
745
  }, {
737
746
  key: 'showControl',
738
- value: function showControl() {
739
- var t = this;
740
- t.state.gis.addControl(t.scale);
741
- if (t.props.showControl.type !== 'null' && !!t.props.showControl.type) {
742
- t.state.gis.addControl(t.tool);
747
+ value: function showControl(props) {
748
+ var t = this,
749
+ location = 'RT',
750
+ offset = null;
751
+ var config = props || t.props;
752
+ if (t.scaleControl) {
753
+ t.state.gis.removeControl(t.scaleControl);
754
+ }
755
+ if (t.navigationControl) {
756
+ t.state.gis.removeControl(t.navigationControl);
757
+ }
758
+ if (config.showControl.location) {
759
+ location = t.AnchorConstant[config.showControl.location];
760
+ }
761
+ if (config.showControl.offset && config.showControl.offset.length > 0) {
762
+ offset = new AMap.Pixel(config.showControl.offset[0], config.showControl.offset[1]);
763
+ scaleOffset = new AMap.Pixel(config.showControl.offset[0] + 70, config.showControl.offset[1]);
764
+ }
765
+ // 添加比例尺
766
+ var control = new AMap.Scale({ position: location, offset: scaleOffset });
767
+ t.state.gis.addControl(control);
768
+ t.scaleControl = control;
769
+ // 包含平移和缩放按钮
770
+ var navigation = new AMap.ToolBar({ position: location, offset: offset });
771
+ t.state.gis.addControl(navigation);
772
+ t.navigationControl = navigation;
773
+ }
774
+ //展示地图切换控件
775
+
776
+ }, {
777
+ key: 'showMapTypeControl',
778
+ value: function showMapTypeControl(props) {
779
+ var t = this,
780
+ location = 'RT',
781
+ offset = null;
782
+ var config = props || t.props;
783
+ if (t.mapTypeControl) {
784
+ t.state.gis.removeControl(t.mapTypeControl);
785
+ }
786
+ if (config.satelliteSwitch.location) {
787
+ location = t.AnchorConstant[config.satelliteSwitch.location];
788
+ }
789
+
790
+ // 地图切换控件
791
+ var control = new AMap.MapType({ position: location, offset: offset });
792
+ t.state.gis.addControl(control);
793
+ t.mapTypeControl = control;
794
+
795
+ // TODO,MapType没有这些属性,所以下面定位和偏移不生效,手动修改
796
+ function reloaction() {
797
+ if (location == 'RT') {
798
+ $('div.amap-maptypecontrol').css({ right: 0, top: 0, left: 'inherit', bottom: 'inherit' });
799
+ } else if (location == 'LT') {
800
+ $('div.amap-maptypecontrol').css({ left: 0 + 64, top: 0, right: 'inherit', bottom: 'inherit' });
801
+ } else if (location == 'LB') {
802
+ $('div.amap-maptypecontrol').css({ left: 0 + 64, bottom: 0 + 84, right: 'inherit', top: 'inherit' });
803
+ } else if (location == 'RB') {
804
+ $('div.amap-maptypecontrol').css({ right: 0, bottom: 0 + 84, left: 'inherit', top: 'inherit' });
805
+ }
806
+ if (config.satelliteSwitch.offset && config.satelliteSwitch.offset.length > 0) {
807
+ if (location == 'RT') {
808
+ $('div.amap-maptypecontrol').css({ right: config.satelliteSwitch.offset[0], top: config.satelliteSwitch.offset[1], left: 'inherit', bottom: 'inherit' });
809
+ } else if (location == 'LT') {
810
+ $('div.amap-maptypecontrol').css({ left: config.satelliteSwitch.offset[0] + 64, top: config.satelliteSwitch.offset[1], right: 'inherit', bottom: 'inherit' });
811
+ } else if (location == 'LB') {
812
+ $('div.amap-maptypecontrol').css({ left: config.satelliteSwitch.offset[0] + 64, bottom: config.satelliteSwitch.offset[1] + 84, right: 'inherit', top: 'inherit' });
813
+ } else if (location == 'RB') {
814
+ $('div.amap-maptypecontrol').css({ right: config.satelliteSwitch.offset[0], bottom: config.satelliteSwitch.offset[1] + 84, left: 'inherit', top: 'inherit' });
815
+ }
816
+ }
817
+ }
818
+ if ($('div.amap-maptypecontrol').length > 0) {
819
+ reloaction();
820
+ } else {
821
+ var timer = setInterval(function () {
822
+ console.log(123);
823
+ if ($('div.amap-maptypecontrol').length > 0) {
824
+ clearInterval(timer);
825
+ reloaction();
826
+ }
827
+ }, 500);
743
828
  }
744
829
  }
745
830
  //获取图元数据
@@ -2917,6 +3002,15 @@ var VortexAMap = function (_React$Component) {
2917
3002
  if (typeof isClearAreaRestriction == 'boolean' && isClearAreaRestriction || isClearAreaRestriction && isClearAreaRestriction !== t.props.isClearAreaRestriction) {
2918
3003
  t.clearAreaRestriction();
2919
3004
  }
3005
+
3006
+ // 比例尺控件位置改变
3007
+ if (nextProps.showControl && JSON.stringify(nextProps.showControl) != JSON.stringify(t.props.showControl)) {
3008
+ t.showControl(nextProps);
3009
+ }
3010
+ // 地图类型控件位置改变
3011
+ if (nextProps.satelliteSwitch && JSON.stringify(nextProps.satelliteSwitch) != JSON.stringify(t.props.satelliteSwitch)) {
3012
+ t.showMapTypeControl(nextProps);
3013
+ }
2920
3014
  }
2921
3015
  }, {
2922
3016
  key: 'componentWillUnmount',
@@ -322,6 +322,19 @@ var BaiduMap = function (_React$Component) {
322
322
  } else {
323
323
  window.VtxMap = {};
324
324
  }
325
+ // 控件位置常量
326
+ t.AnchorConstant = {
327
+ tr: BMAP_ANCHOR_TOP_RIGHT,
328
+ tl: BMAP_ANCHOR_TOP_LEFT,
329
+ bl: BMAP_ANCHOR_BOTTOM_LEFT,
330
+ br: BMAP_ANCHOR_BOTTOM_RIGHT
331
+ // 平移缩放控件大小
332
+ };t.NavigationConstant = {
333
+ large: BMAP_NAVIGATION_CONTROL_LARGE,
334
+ small: BMAP_NAVIGATION_CONTROL_SMALL,
335
+ pan: BMAP_NAVIGATION_CONTROL_PAN,
336
+ zoom: BMAP_NAVIGATION_CONTROL_ZOOM
337
+ };
325
338
  var map = window.VtxMap[mapId] = t.state.gis = new BMap.Map(mapId.toString(), {
326
339
  enableMapClick: false,
327
340
  minZoom: options.minZoom,
@@ -340,9 +353,9 @@ var BaiduMap = function (_React$Component) {
340
353
  }, 500);
341
354
  // 初始化地图,设置中心点坐标和地图级别
342
355
  map.centerAndZoom(new BMap.Point(parseFloat(options.center[0]), parseFloat(options.center[1])), options.zoom);
343
- //添加地图类型控件(几乎不用,先写着)
356
+ //添加地图类型控件
344
357
  if (t.props.satelliteSwitch) {
345
- map.addControl(new BMap.MapTypeControl());
358
+ t.showMapTypeControl();
346
359
  }
347
360
  //初始化路况控件
348
361
  if (!t._trafficCtrl) {
@@ -2209,47 +2222,64 @@ var BaiduMap = function (_React$Component) {
2209
2222
 
2210
2223
  }, {
2211
2224
  key: 'showControl',
2212
- value: function showControl() {
2225
+ value: function showControl(props) {
2213
2226
  var t = this,
2214
- location = BMAP_ANCHOR_TOP_LEFT,
2215
- type = '';
2216
- switch (t.props.showControl.location) {
2217
- case 'tl':
2218
- location = BMAP_ANCHOR_TOP_LEFT;
2219
- break;
2220
- case 'bl':
2221
- location = BMAP_ANCHOR_BOTTOM_LEFT;
2222
- break;
2223
- case 'tr':
2224
- location = BMAP_ANCHOR_TOP_RIGHT;
2225
- break;
2226
- case 'br':
2227
- location = BMAP_ANCHOR_BOTTOM_RIGHT;
2228
- break;
2227
+ location = t.AnchorConstant['tr'],
2228
+ type = '',
2229
+ offset = null,
2230
+ scaleOffset = null;
2231
+ var config = props || t.props;
2232
+ if (t.scaleControl) {
2233
+ t.state.gis.removeControl(t.scaleControl);
2229
2234
  }
2230
- switch (t.props.showControl.type) {
2231
- case 'all':
2232
- type = '';
2233
- break;
2234
- case 'small':
2235
- type = BMAP_NAVIGATION_CONTROL_SMALL;
2236
- break;
2237
- case 'pan':
2238
- type = BMAP_NAVIGATION_CONTROL_PAN;
2239
- break;
2240
- case 'zoom':
2241
- type = BMAP_NAVIGATION_CONTROL_ZOOM;
2242
- break;
2235
+ if (t.navigationControl) {
2236
+ t.state.gis.removeControl(t.navigationControl);
2237
+ }
2238
+ if (config.showControl.location) {
2239
+ location = t.AnchorConstant[config.showControl.location];
2240
+ }
2241
+ if (config.showControl.type) {
2242
+ type = t.NavigationConstant[config.showControl.type];
2243
+ }
2244
+ if (config.showControl.offset && config.showControl.offset.length > 0) {
2245
+ offset = new BMap.Size(config.showControl.offset[0], config.showControl.offset[1]);
2246
+ scaleOffset = new BMap.Size(config.showControl.offset[0] + 70, config.showControl.offset[1]);
2243
2247
  }
2244
2248
  // 左上角,添加比例尺
2245
- var control = new BMap.ScaleControl({ anchor: location });
2249
+ var control = new BMap.ScaleControl({ anchor: location, offset: scaleOffset });
2246
2250
  t.state.gis.addControl(control);
2251
+ t.scaleControl = control;
2247
2252
  if (type !== 'null') {
2248
2253
  //右上角,仅包含平移和缩放按钮
2249
- var navigation = new BMap.NavigationControl({ anchor: location, type: type });
2254
+ var navigation = new BMap.NavigationControl({ anchor: location, type: type, offset: offset });
2250
2255
  t.state.gis.addControl(navigation);
2256
+ t.navigationControl = navigation;
2251
2257
  }
2252
2258
  }
2259
+ //展示地图切换控件
2260
+
2261
+ }, {
2262
+ key: 'showMapTypeControl',
2263
+ value: function showMapTypeControl(props) {
2264
+ var t = this,
2265
+ location = t.AnchorConstant['br'],
2266
+ offset = null;
2267
+ var config = props || t.props;
2268
+ if (t.mapTypeControl) {
2269
+ t.state.gis.removeControl(t.mapTypeControl);
2270
+ }
2271
+ if (config.satelliteSwitch.location) {
2272
+ location = t.AnchorConstant[config.satelliteSwitch.location];
2273
+ }
2274
+ if (config.satelliteSwitch.offset && config.satelliteSwitch.offset.length > 0) {
2275
+ offset = new BMap.Size(config.satelliteSwitch.offset[0], config.satelliteSwitch.offset[1]);
2276
+ }
2277
+ var mapTypes = [BMAP_NORMAL_MAP, BMAP_SATELLITE_MAP, BMAP_HYBRID_MAP];
2278
+ // 地图切换控件
2279
+ var control = new BMap.MapTypeControl({ mapTypes: mapTypes, anchor: location, type: BMAP_MAPTYPE_CONTROL_HORIZONTAL, offset: offset });
2280
+ t.state.gis.addControl(control);
2281
+ t.mapTypeControl = control;
2282
+ }
2253
2283
  /*设置显示区域*/
2254
2284
 
2255
2285
  }, {
@@ -3104,6 +3134,14 @@ var BaiduMap = function (_React$Component) {
3104
3134
  t.removeGraphic(item.id, item.type);
3105
3135
  });
3106
3136
  }
3137
+ // 比例尺控件位置改变
3138
+ if (nextProps.showControl && JSON.stringify(nextProps.showControl) != JSON.stringify(t.props.showControl)) {
3139
+ t.showControl(nextProps);
3140
+ }
3141
+ // 地图类型控件位置改变
3142
+ if (nextProps.satelliteSwitch && JSON.stringify(nextProps.satelliteSwitch) != JSON.stringify(t.props.satelliteSwitch)) {
3143
+ t.showMapTypeControl(nextProps);
3144
+ }
3107
3145
  }
3108
3146
  }, {
3109
3147
  key: 'componentWillUnmount',
@@ -218,7 +218,10 @@ var TMap = function (_React$Component) {
218
218
  if (showControl) {
219
219
  t.showControl();
220
220
  }
221
-
221
+ //添加地图类型控件
222
+ if (t.props.satelliteSwitch) {
223
+ t.showMapTypeControl();
224
+ }
222
225
  // //画边界线
223
226
  // if(boundaryName instanceof Array && boundaryName.length>0){
224
227
  // t.addBaiduBoundary(boundaryName);
@@ -263,6 +266,13 @@ var TMap = function (_React$Component) {
263
266
  if (!window.VtxMap) {
264
267
  window.VtxMap = {};
265
268
  }
269
+ // 控件位置常量
270
+ t.AnchorConstant = {
271
+ tr: T_ANCHOR_TOP_RIGHT,
272
+ tl: T_ANCHOR_TOP_LEFT,
273
+ bl: T_ANCHOR_BOTTOM_LEFT,
274
+ br: T_ANCHOR_BOTTOM_RIGHT
275
+ };
266
276
  window.VtxMap[mapId] = t.state.gis = new T.Map(mapId.toString(), {
267
277
  //zoom等级,和百度一样默认10
268
278
  zoom: mapZoomLevel || 10,
@@ -555,63 +565,74 @@ var TMap = function (_React$Component) {
555
565
 
556
566
  }, {
557
567
  key: 'showControl',
558
- value: function showControl() {
559
- var t = this;
560
- var zlt = T_ANCHOR_BOTTOM_RIGHT;
561
- var zls = T_ANCHOR_BOTTOM_RIGHT;
562
- if (t.props.showControl) {
563
- switch (t.props.showControl.location) {
564
- case 'tl':
565
- zlt = T_ANCHOR_TOP_LEFT;
566
- zls = T_ANCHOR_BOTTOM_LEFT;
567
- break;
568
- case 'bl':
569
- zlt = T_ANCHOR_BOTTOM_LEFT;
570
- zls = T_ANCHOR_BOTTOM_LEFT;
571
- break;
572
- case 'tr':
573
- zlt = T_ANCHOR_TOP_RIGHT;
574
- zls = T_ANCHOR_BOTTOM_RIGHT;
575
- break;
576
- case 'br':
577
- zlt = T_ANCHOR_BOTTOM_RIGHT;
578
- zls = T_ANCHOR_BOTTOM_RIGHT;
579
- break;
580
- }
581
- }
582
- var zoomControl = void 0,
583
- scaleControl = void 0;
584
- switch (t.props.showControl.type) {
585
- case 'all':
586
- case 'small':
587
- case 'pan':
588
- case 'zoom':
589
- zoomControl = new T.Control.Zoom();
590
- scaleControl = new T.Control.Scale();
591
- this.state.gis.addControl(scaleControl);
592
- this.state.gis.addControl(zoomControl);
593
- zoomControl.setPosition(zlt);
594
- scaleControl.setPosition(zls);
595
- break;
596
- default:
597
- scaleControl = new T.Control.Scale();
598
- this.state.gis.addControl(scaleControl);
599
- scaleControl.setPosition(zls);
600
- break;
568
+ value: function showControl(props) {
569
+ var t = this,
570
+ location = t.AnchorConstant['tr'],
571
+ offset = null,
572
+ scaleOffset = null;
573
+ var config = props || t.props;
574
+ if (t.scaleControl) {
575
+ t.state.gis.removeControl(t.scaleControl);
576
+ }
577
+ if (t.navigationControl) {
578
+ t.state.gis.removeControl(t.navigationControl);
579
+ }
580
+ if (config.showControl.location) {
581
+ location = t.AnchorConstant[config.showControl.location];
582
+ }
583
+ // 添加比例尺
584
+ var control = new T.Control.Scale({ position: location, offset: scaleOffset });
585
+ t.state.gis.addControl(control);
586
+ t.scaleControl = control;
587
+ // 缩放地图
588
+ var navigation = new T.Control.Zoom({ position: location, offset: offset });
589
+ t.state.gis.addControl(navigation);
590
+ t.navigationControl = navigation;
591
+
592
+ // TODO不支持偏移,手动偏移
593
+ if (config.showControl.offset && config.showControl.offset.length > 0) {
594
+ if (location == "topright") {
595
+ $('div.tdt-top.tdt-right').css({ right: config.showControl.offset[0], top: config.showControl.offset[1] });
596
+ } else if (location == "topleft") {
597
+ $('div.tdt-top.tdt-left').css({ left: config.showControl.offset[0], top: config.showControl.offset[1] });
598
+ } else if (location == "bottomleft") {
599
+ $('div.tdt-bottom.tdt-left').css({ left: config.showControl.offset[0], bottom: config.showControl.offset[1] });
600
+ } else if (location == "bottomright") {
601
+ $('div.tdt-bottom.tdt-right').css({ right: config.showControl.offset[0], bottom: config.showControl.offset[1] });
602
+ }
603
+ }
604
+ }
605
+ //展示地图切换控件
606
+
607
+ }, {
608
+ key: 'showMapTypeControl',
609
+ value: function showMapTypeControl(props) {
610
+ var t = this,
611
+ location = t.AnchorConstant['br'],
612
+ offset = null;
613
+ var config = props || t.props;
614
+ if (t.mapTypeControl) {
615
+ t.state.gis.removeControl(t.mapTypeControl);
601
616
  }
602
- var fdom = document.getElementById(t.props.mapId);
603
- //天地图 api问题 使用js dom操作css
604
- if (t.props.showControl && t.props.showControl.location == 'bl') {
605
- var dom = fdom.getElementsByClassName('tdt-control-scale')[0];
606
- dom.style.position = 'relative';
607
- dom.style.top = '65px';
608
- dom.style.left = '45px';
617
+ if (config.satelliteSwitch.location) {
618
+ location = t.AnchorConstant[config.satelliteSwitch.location];
609
619
  }
610
- if (t.props.showControl && t.props.showControl.location == 'br') {
611
- var _dom = fdom.getElementsByClassName('tdt-control-scale')[0];
612
- _dom.style.position = 'relative';
613
- _dom.style.top = '65px';
614
- _dom.style.right = '45px';
620
+ // 地图切换控件
621
+ var control = new T.Control.MapType({ position: location, offset: offset });
622
+ t.state.gis.addControl(control);
623
+ t.mapTypeControl = control;
624
+
625
+ // TODO不支持偏移,手动偏移
626
+ if (config.satelliteSwitch.offset && config.satelliteSwitch.offset.length > 0) {
627
+ if (location == "topright") {
628
+ $('div.tdt-top.tdt-right').css({ right: config.satelliteSwitch.offset[0], top: config.satelliteSwitch.offset[1] });
629
+ } else if (location == "topleft") {
630
+ $('div.tdt-top.tdt-left').css({ left: config.satelliteSwitch.offset[0], top: config.satelliteSwitch.offset[1] });
631
+ } else if (location == "bottomleft") {
632
+ $('div.tdt-bottom.tdt-left').css({ left: config.satelliteSwitch.offset[0], bottom: config.satelliteSwitch.offset[1] });
633
+ } else if (location == "bottomright") {
634
+ $('div.tdt-bottom.tdt-right').css({ right: config.satelliteSwitch.offset[0], bottom: config.satelliteSwitch.offset[1] });
635
+ }
615
636
  }
616
637
  }
617
638
  //测距
@@ -1530,11 +1551,11 @@ var TMap = function (_React$Component) {
1530
1551
  t.heatmap.hide();
1531
1552
  }
1532
1553
  }
1533
- /*
1534
- 参数
1535
- geometryType:point/polyline/polygon/circle/rectangle 默认point
1536
- parameter 样式 默认null 对象{}写入方式跟add方法一样(对应点线圆面)
1537
- data //初始化数据 默认{id:'add'}
1554
+ /*
1555
+ 参数
1556
+ geometryType:point/polyline/polygon/circle/rectangle 默认point
1557
+ parameter 样式 默认null 对象{}写入方式跟add方法一样(对应点线圆面)
1558
+ data //初始化数据 默认{id:'add'}
1538
1559
  */
1539
1560
 
1540
1561
  }, {
@@ -2740,10 +2761,10 @@ var TMap = function (_React$Component) {
2740
2761
  t.clearAllPointCollection();
2741
2762
  }
2742
2763
 
2743
- /*点数据处理
2744
- pointData[2]相同的点,执行刷新
2745
- pointData[1]的数据在idsForGraphicId中不存在的,执行新增
2746
- pointData[0]数据中多余的id,执行删除
2764
+ /*点数据处理
2765
+ pointData[2]相同的点,执行刷新
2766
+ pointData[1]的数据在idsForGraphicId中不存在的,执行新增
2767
+ pointData[0]数据中多余的id,执行删除
2747
2768
  */
2748
2769
  if (mapPoints instanceof Array && t.props.mapPoints instanceof Array && !t.deepEqual(mapPoints, t.props.mapPoints)) {
2749
2770
  var oldMapPoints = t.props.mapPoints;
@@ -2803,9 +2824,9 @@ var TMap = function (_React$Component) {
2803
2824
  //更新
2804
2825
  t.updatePoint([].concat(_toConsumableArray(upds), _toConsumableArray(otherupds)));
2805
2826
  }
2806
- /*
2807
- 面数据处理
2808
- 先全删除,再新增
2827
+ /*
2828
+ 面数据处理
2829
+ 先全删除,再新增
2809
2830
  */
2810
2831
  if (mapPolygons instanceof Array && t.props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons, t.props.mapPolygons)) {
2811
2832
  var oldMapPolygons = t.props.mapPolygons;
@@ -2864,9 +2885,9 @@ var TMap = function (_React$Component) {
2864
2885
  //更新
2865
2886
  t.updatePolygon([].concat(_toConsumableArray(_upds), _toConsumableArray(_otherupds)));
2866
2887
  }
2867
- /*
2868
- 圆数据处理
2869
- 先全删除,再新增
2888
+ /*
2889
+ 圆数据处理
2890
+ 先全删除,再新增
2870
2891
  */
2871
2892
  if (mapCircles instanceof Array && t.props.mapCircles instanceof Array && !t.deepEqual(mapCircles, t.props.mapCircles)) {
2872
2893
  var oldMapCircles = t.props.mapCircles;
@@ -2925,9 +2946,9 @@ var TMap = function (_React$Component) {
2925
2946
  //更新
2926
2947
  t.updateCircle([].concat(_toConsumableArray(_upds2), _toConsumableArray(_otherupds2)));
2927
2948
  }
2928
- /*
2929
- 线数据处理
2930
- 先全删除,再新增
2949
+ /*
2950
+ 线数据处理
2951
+ 先全删除,再新增
2931
2952
  */
2932
2953
  if (mapLines instanceof Array && t.props.mapLines instanceof Array && !t.deepEqual(mapLines, t.props.mapLines)) {
2933
2954
  var oldMapLines = t.props.mapLines;
@@ -3119,6 +3140,15 @@ var TMap = function (_React$Component) {
3119
3140
  }
3120
3141
  }, 100);
3121
3142
  }
3143
+
3144
+ // 比例尺控件位置改变
3145
+ if (nextProps.showControl && JSON.stringify(nextProps.showControl) != JSON.stringify(t.props.showControl)) {
3146
+ t.showControl(nextProps);
3147
+ }
3148
+ // 地图类型控件位置改变
3149
+ if (nextProps.satelliteSwitch && JSON.stringify(nextProps.satelliteSwitch) != JSON.stringify(t.props.satelliteSwitch)) {
3150
+ t.showMapTypeControl(nextProps);
3151
+ }
3122
3152
  }
3123
3153
  }, {
3124
3154
  key: 'componentWillUnmount',
@@ -3140,7 +3170,7 @@ var TMap = function (_React$Component) {
3140
3170
  clearInterval(t.animTimer[j]);
3141
3171
  }
3142
3172
  }
3143
- window.VtxMap[t.state.mapId] = null;
3173
+ if (window.VtxMap && window.VtxMap[t.state.mapId]) window.VtxMap[t.state.mapId] = null;
3144
3174
  }
3145
3175
  }]);
3146
3176
 
@@ -32,12 +32,6 @@ var _message2 = _interopRequireDefault(_message);
32
32
 
33
33
  require('antd/lib/message/style/css');
34
34
 
35
- var _icon = require('antd/lib/icon');
36
-
37
- var _icon2 = _interopRequireDefault(_icon);
38
-
39
- require('antd/lib/icon/style/css');
40
-
41
35
  var _checkbox = require('antd/lib/checkbox');
42
36
 
43
37
  var _checkbox2 = _interopRequireDefault(_checkbox);
@@ -52,6 +46,8 @@ var _default = require('../default');
52
46
 
53
47
  var _default2 = _interopRequireDefault(_default);
54
48
 
49
+ var _mapping = require('./mapping');
50
+
55
51
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
56
52
 
57
53
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -83,8 +79,12 @@ var styles = {
83
79
  hiddenLabel: 'vtx-ui-searchmap-hiddenlabel',
84
80
  otherModal: 'vtx-ui-searchmap-othermodal'
85
81
  };
82
+ // import Icon from 'antd/lib/icon';
83
+ // import 'antd/lib/icon/style/css';
84
+
86
85
  //公共地址配置
87
86
 
87
+
88
88
  // message.config({
89
89
  // top: document.getElementById('root').offsetHeight/3,
90
90
  // duration: 5,
@@ -102,6 +102,10 @@ function distinct(ary) {
102
102
  }
103
103
  }
104
104
 
105
+ var getIcon = function getIcon(type) {
106
+ return _default.antdMajorVersion === '4' ? _react2.default.createElement(_default.VtxMapIcon, { type: 'icon-' + _mapping.iconMapping[type] }) : type;
107
+ };
108
+
105
109
  var VtxSearchMap = function (_React$Component) {
106
110
  _inherits(VtxSearchMap, _React$Component);
107
111
 
@@ -599,12 +603,12 @@ var VtxSearchMap = function (_React$Component) {
599
603
  _button2.default,
600
604
  { type: 'primary', onClick: function onClick() {
601
605
  _this4.callback();
602
- }, icon: 'check' },
606
+ }, icon: getIcon('check') },
603
607
  '\u786E\u5B9A'
604
608
  ),
605
609
  _react2.default.createElement(
606
610
  _button2.default,
607
- { onClick: this.closeModal.bind(this), icon: 'close' },
611
+ { onClick: this.closeModal.bind(this), icon: getIcon('close') },
608
612
  '\u5173\u95ED'
609
613
  )
610
614
  )
@@ -617,16 +621,16 @@ var VtxSearchMap = function (_React$Component) {
617
621
  { className: styles.top },
618
622
  mapType == 'gmap' ? '' : [_react2.default.createElement(_input2.default, _extends({ key: '1' }, InputProps)), _react2.default.createElement(
619
623
  _button2.default,
620
- { key: '2', type: 'primary', onClick: this.searchList.bind(this), icon: 'search' },
624
+ { key: '2', type: 'primary', onClick: this.searchList.bind(this), icon: getIcon('search') },
621
625
  '\u67E5\u8BE2'
622
626
  ), _react2.default.createElement(
623
627
  _button2.default,
624
- { key: '3', onClick: this.clearList.bind(this), icon: 'close' },
628
+ { key: '3', onClick: this.clearList.bind(this), icon: getIcon('close') },
625
629
  '\u6E05\u7A7A'
626
630
  )],
627
631
  this.state.graphicType == 'point' ? _react2.default.createElement(
628
632
  _button2.default,
629
- { onClick: this.correction.bind(this), icon: 'environment-o' },
633
+ { onClick: this.correction.bind(this), icon: getIcon('environment') },
630
634
  '\u6821\u6B63'
631
635
  ) : null,
632
636
  this.state.graphicType != 'point' ? _react2.default.createElement(
@@ -645,12 +649,12 @@ var VtxSearchMap = function (_React$Component) {
645
649
  });
646
650
  });
647
651
  _this4.callback('editDraw');
648
- }, icon: 'edit' },
652
+ }, icon: getIcon('edit') },
649
653
  '\u91CD\u65B0\u7ED8\u5236'
650
654
  ) : null,
651
655
  mapType == 'gmap' ? '' : _react2.default.createElement(
652
656
  _button2.default,
653
- { onClick: this.setFitView.bind(this), icon: 'sync' },
657
+ { onClick: this.setFitView.bind(this), icon: getIcon('sync') },
654
658
  '\u8FD4\u56DE\u5168\u5C40\u5730\u56FE'
655
659
  ),
656
660
  isShowOther ? _react2.default.createElement(
@@ -687,7 +691,7 @@ var VtxSearchMap = function (_React$Component) {
687
691
  { onClick: function onClick() {
688
692
  return _this4.showOrhidden(false);
689
693
  }, className: styles.btn },
690
- _react2.default.createElement(_icon2.default, { type: 'double-left' })
694
+ _react2.default.createElement(_default.VtxMapIcon, { type: 'icon-doubleleft' })
691
695
  )
692
696
  ),
693
697
  _react2.default.createElement(
@@ -713,7 +717,7 @@ var VtxSearchMap = function (_React$Component) {
713
717
  { onClick: function onClick() {
714
718
  return _this4.showOrhidden(true);
715
719
  }, className: styles.btn + ' ' + (!isShowList ? styles.show : styles.hidden) },
716
- _react2.default.createElement(_icon2.default, { type: 'double-right' })
720
+ _react2.default.createElement(_default.VtxMapIcon, { type: 'icon-doubleright' })
717
721
  )
718
722
  ),
719
723
  _react2.default.createElement(
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var iconMapping = exports.iconMapping = {
7
+ check: 'check',
8
+ close: 'close',
9
+ search: 'search1',
10
+ environment: 'location',
11
+ edit: 'edit',
12
+ sync: 'sync',
13
+ 'double-left': 'doubleleft',
14
+ 'double-right': 'doubleright'
15
+ };
package/lib/default.js CHANGED
@@ -3,7 +3,25 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.VtxMapIcon = exports.antdMajorVersion = undefined;
6
7
  exports.getTMapTK = getTMapTK;
8
+
9
+ var _package = require('antd/package.json');
10
+
11
+ var createFromIconfontCN = void 0;
12
+ var antdMajorVersion = exports.antdMajorVersion = _package.version.substring(0, 1);
13
+
14
+ // 必须是3.9.0之后的版本
15
+ if (antdMajorVersion === '3') {
16
+ createFromIconfontCN = require('antd/lib/icon').default.createFromIconfontCN;
17
+ } else if (antdMajorVersion === '4') {
18
+ createFromIconfontCN = require('@ant-design/icons').createFromIconfontCN;
19
+ }
20
+
21
+ var VtxMapIcon = exports.VtxMapIcon = createFromIconfontCN({
22
+ scriptUrl: '//at.alicdn.com/t/font_2865072_ecuwrji9qwq.js'
23
+ });
24
+
7
25
  var globalCfg = window.VtxPublicServiceAddress || {};
8
26
 
9
27
  exports.default = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtx/map",
3
- "version": "1.0.2",
3
+ "version": "1.0.6",
4
4
  "description": "@vtx/map",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {