xy-map 1.1.55 → 1.1.57

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xy-map",
3
- "version": "1.1.55",
3
+ "version": "1.1.57",
4
4
  "description": "雄越地图",
5
5
  "main": "xy-map.umd.min.js",
6
6
  "scripts": {
package/xy-map.common.js CHANGED
@@ -224,7 +224,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".snow[data-v-20664206]{position:absolu
224
224
 
225
225
  /***/ }),
226
226
 
227
- /***/ 9047:
227
+ /***/ 8921:
228
228
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
229
229
 
230
230
  "use strict";
@@ -238,7 +238,7 @@ __webpack_require__.r(__webpack_exports__);
238
238
 
239
239
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
240
240
  // Module
241
- ___CSS_LOADER_EXPORT___.push([module.id, ".tools[data-v-54603de0]{position:absolute;left:0;top:0;margin:15px;background-color:hsla(0,0%,100%,.9);padding:14px;border-radius:5px}.tools .tools-bar[data-v-54603de0]{cursor:pointer}.right-fixed[data-v-54603de0]{position:absolute;right:0;top:0;margin:15px}", ""]);
241
+ ___CSS_LOADER_EXPORT___.push([module.id, ".tools[data-v-4d022886]{position:absolute;left:0;top:0;margin:15px;background-color:hsla(0,0%,100%,.9);padding:14px;border-radius:5px}.tools .tools-bar[data-v-4d022886]{cursor:pointer}.right-fixed[data-v-4d022886]{position:absolute;right:0;top:0;margin:15px}", ""]);
242
242
  // Exports
243
243
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
244
244
 
@@ -42891,19 +42891,19 @@ var update = add("4a7b31d4", content, true, {"sourceMap":false,"shadowMode":fals
42891
42891
 
42892
42892
  /***/ }),
42893
42893
 
42894
- /***/ 6967:
42894
+ /***/ 343:
42895
42895
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
42896
42896
 
42897
42897
  // style-loader: Adds some css to the DOM by adding a <style> tag
42898
42898
 
42899
42899
  // load the styles
42900
- var content = __webpack_require__(9047);
42900
+ var content = __webpack_require__(8921);
42901
42901
  if(content.__esModule) content = content.default;
42902
42902
  if(typeof content === 'string') content = [[module.id, content, '']];
42903
42903
  if(content.locals) module.exports = content.locals;
42904
42904
  // add the styles to the DOM
42905
42905
  var add = (__webpack_require__(7037)/* ["default"] */ .Z)
42906
- var update = add("c1b1835a", content, true, {"sourceMap":false,"shadowMode":false});
42906
+ var update = add("531b6652", content, true, {"sourceMap":false,"shadowMode":false});
42907
42907
 
42908
42908
  /***/ }),
42909
42909
 
@@ -70735,19 +70735,63 @@ const geometryCollectionToFeatureCollection = geometryCollection => {
70735
70735
  const wgs84ToGcj02 = coord => {
70736
70736
  // 输入检查
70737
70737
  if (!Array.isArray(coord) || coord.length !== 2) {
70738
- throw new Error('Input must be an array with [longitude, latitude]');
70738
+ throw new Error('输入必须是包含经度和纬度的数组');
70739
70739
  }
70740
70740
  let [lng, lat] = coord.map(Number);
70741
70741
 
70742
70742
  // 检查输入是否为有效数字
70743
70743
  if (isNaN(lng) || isNaN(lat)) {
70744
- throw new Error('Coordinates must be valid numbers');
70744
+ throw new Error('坐标必须是有效的数字');
70745
70745
  }
70746
70746
 
70747
70747
  // 如果不在中国范围内,直接返回原坐标
70748
70748
  if (outOfChina(lng, lat)) {
70749
70749
  return [lng, lat];
70750
70750
  }
70751
+ // 使用迭代法求解,提高迭代次数以增加精度
70752
+ let dLng = 0,
70753
+ dLat = 0;
70754
+ let mLng = lng,
70755
+ mLat = lat;
70756
+
70757
+ // 增加迭代次数到10次提高精度
70758
+ for (let i = 0; i < 10; i++) {
70759
+ // 使用wgs84ToGcj02获取当前估计值对应的gcj02坐标
70760
+ let [gcjLng, gcjLat] = wgs84ToGcj02([mLng, mLat]);
70761
+ // 计算差值
70762
+ dLng = gcjLng - lng;
70763
+ dLat = gcjLat - lat;
70764
+ // 更新估计值
70765
+ mLng = mLng - dLng;
70766
+ mLat = mLat - dLat;
70767
+
70768
+ // 如果精度已经足够高,提前退出循环
70769
+ if (Math.abs(dLng) < 0.000000001 && Math.abs(dLat) < 0.000000001) {
70770
+ break;
70771
+ }
70772
+ }
70773
+ return [mLng, mLat];
70774
+ };
70775
+
70776
+ //高德坐标系Gcj02转换 WGS84
70777
+ const gcj02ToWgs84 = coord => {
70778
+ // 输入检查
70779
+ if (!Array.isArray(coord) || coord.length !== 2) {
70780
+ throw new Error('输入必须是包含经度和纬度的数组');
70781
+ }
70782
+ let [lng, lat] = coord.map(Number);
70783
+
70784
+ // 检查输入是否为有效数字
70785
+ if (isNaN(lng) || isNaN(lat)) {
70786
+ throw new Error('坐标必须是有效的数字');
70787
+ }
70788
+
70789
+ // 如果不在中国范围内,直接返回原坐标
70790
+ if (outOfChina(lng, lat)) {
70791
+ return [lng, lat];
70792
+ }
70793
+
70794
+ // 计算偏移量
70751
70795
  let dLat = transformLat(lng - 105.0, lat - 35.0);
70752
70796
  let dLng = transformLng(lng - 105.0, lat - 35.0);
70753
70797
  let radLat = lat / 180.0 * PI;
@@ -70756,9 +70800,11 @@ const wgs84ToGcj02 = coord => {
70756
70800
  let sqrtMagic = Math.sqrt(magic);
70757
70801
  dLat = dLat * 180.0 / (a * (1 - ee) / (magic * sqrtMagic) * PI);
70758
70802
  dLng = dLng * 180.0 / (a / sqrtMagic * Math.cos(radLat) * PI);
70759
- let gcjLat = lat + dLat;
70760
- let gcjLng = lng + dLng;
70761
- return [gcjLng, gcjLat];
70803
+
70804
+ // GCJ-02 to WGS-84
70805
+ let wgsLat = lat - dLat;
70806
+ let wgsLng = lng - dLng;
70807
+ return [wgsLng, wgsLat];
70762
70808
  };
70763
70809
 
70764
70810
  // 3857墨卡托坐标系转换为4326 (WGS84)经纬度坐标
@@ -120458,8 +120504,8 @@ var mapStyle_component = normalizeComponent(
120458
120504
  )
120459
120505
 
120460
120506
  /* harmony default export */ var mapStyle = (mapStyle_component.exports);
120461
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/index.vue?vue&type=template&id=54603de0&scoped=true&
120462
- var drawvue_type_template_id_54603de0_scoped_true_render = function render() {
120507
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/index.vue?vue&type=template&id=4d022886&scoped=true&
120508
+ var drawvue_type_template_id_4d022886_scoped_true_render = function render() {
120463
120509
  var _vm = this,
120464
120510
  _c = _vm._self._c;
120465
120511
  return _c('div', [_c('div', {
@@ -120596,7 +120642,7 @@ var drawvue_type_template_id_54603de0_scoped_true_render = function render() {
120596
120642
  staticClass: "right-fixed"
120597
120643
  }, [_vm._t("right-fixed")], 2)]);
120598
120644
  };
120599
- var drawvue_type_template_id_54603de0_scoped_true_staticRenderFns = [];
120645
+ var drawvue_type_template_id_4d022886_scoped_true_staticRenderFns = [];
120600
120646
 
120601
120647
  // EXTERNAL MODULE: ./node_modules/@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css
120602
120648
  var dist_mapbox_gl_draw = __webpack_require__(6957);
@@ -121251,6 +121297,7 @@ var shpFile_component = normalizeComponent(
121251
121297
  // coordinates: [this.lng, this.lat]
121252
121298
  // }
121253
121299
  this.geoJson = geoJson;
121300
+ if (!geoJson || !geoJson.features) return;
121254
121301
  geoJson.features.forEach(item => {
121255
121302
  this.draw.add(item.geometry);
121256
121303
  });
@@ -121346,9 +121393,9 @@ var shpFile_component = normalizeComponent(
121346
121393
  });
121347
121394
  ;// CONCATENATED MODULE: ./src/package/draw/index.vue?vue&type=script&lang=js&
121348
121395
  /* harmony default export */ var package_drawvue_type_script_lang_js_ = (drawvue_type_script_lang_js_);
121349
- // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/index.vue?vue&type=style&index=0&id=54603de0&prod&lang=scss&scoped=true&
121350
- var drawvue_type_style_index_0_id_54603de0_prod_lang_scss_scoped_true_ = __webpack_require__(6967);
121351
- ;// CONCATENATED MODULE: ./src/package/draw/index.vue?vue&type=style&index=0&id=54603de0&prod&lang=scss&scoped=true&
121396
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/index.vue?vue&type=style&index=0&id=4d022886&prod&lang=scss&scoped=true&
121397
+ var drawvue_type_style_index_0_id_4d022886_prod_lang_scss_scoped_true_ = __webpack_require__(343);
121398
+ ;// CONCATENATED MODULE: ./src/package/draw/index.vue?vue&type=style&index=0&id=4d022886&prod&lang=scss&scoped=true&
121352
121399
 
121353
121400
  ;// CONCATENATED MODULE: ./src/package/draw/index.vue
121354
121401
 
@@ -121361,11 +121408,11 @@ var drawvue_type_style_index_0_id_54603de0_prod_lang_scss_scoped_true_ = __webpa
121361
121408
 
121362
121409
  var draw_component = normalizeComponent(
121363
121410
  package_drawvue_type_script_lang_js_,
121364
- drawvue_type_template_id_54603de0_scoped_true_render,
121365
- drawvue_type_template_id_54603de0_scoped_true_staticRenderFns,
121411
+ drawvue_type_template_id_4d022886_scoped_true_render,
121412
+ drawvue_type_template_id_4d022886_scoped_true_staticRenderFns,
121366
121413
  false,
121367
121414
  null,
121368
- "54603de0",
121415
+ "4d022886",
121369
121416
  null
121370
121417
 
121371
121418
  )
@@ -121584,8 +121631,8 @@ var point_component = normalizeComponent(
121584
121631
  )
121585
121632
 
121586
121633
  /* harmony default export */ var point = (point_component.exports);
121587
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/line.vue?vue&type=template&id=9381e4bc&
121588
- var linevue_type_template_id_9381e4bc_render = function render() {
121634
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/line.vue?vue&type=template&id=1e1a2862&
121635
+ var linevue_type_template_id_1e1a2862_render = function render() {
121589
121636
  var _vm = this,
121590
121637
  _c = _vm._self._c;
121591
121638
  return _c('div', {
@@ -121640,7 +121687,7 @@ var linevue_type_template_id_9381e4bc_render = function render() {
121640
121687
  }
121641
121688
  }, [_vm._v("保存")]), _vm._t("default")], 2)])], 1);
121642
121689
  };
121643
- var linevue_type_template_id_9381e4bc_staticRenderFns = [];
121690
+ var linevue_type_template_id_1e1a2862_staticRenderFns = [];
121644
121691
 
121645
121692
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/line.vue?vue&type=script&lang=js&
121646
121693
 
@@ -121738,7 +121785,7 @@ var linevue_type_template_id_9381e4bc_staticRenderFns = [];
121738
121785
  }
121739
121786
  },
121740
121787
  drawUpdate(data, autoZoom = false) {
121741
- if (!data) return;
121788
+ if (!data || !data.features) return;
121742
121789
  this.geoJson = data;
121743
121790
  this.position = data.features.map(item => item.geometry.coordinates.flat(Infinity));
121744
121791
  this.position = spArray(2, ...this.position); // 数组分割,两两一组
@@ -121787,8 +121834,8 @@ var linevue_type_template_id_9381e4bc_staticRenderFns = [];
121787
121834
  ;
121788
121835
  var line_component = normalizeComponent(
121789
121836
  draw_linevue_type_script_lang_js_,
121790
- linevue_type_template_id_9381e4bc_render,
121791
- linevue_type_template_id_9381e4bc_staticRenderFns,
121837
+ linevue_type_template_id_1e1a2862_render,
121838
+ linevue_type_template_id_1e1a2862_staticRenderFns,
121792
121839
  false,
121793
121840
  null,
121794
121841
  null,
@@ -121797,8 +121844,8 @@ var line_component = normalizeComponent(
121797
121844
  )
121798
121845
 
121799
121846
  /* harmony default export */ var draw_line = (line_component.exports);
121800
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/polygon.vue?vue&type=template&id=7fe5b58b&
121801
- var polygonvue_type_template_id_7fe5b58b_render = function render() {
121847
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/polygon.vue?vue&type=template&id=4c27d54b&
121848
+ var polygonvue_type_template_id_4c27d54b_render = function render() {
121802
121849
  var _vm = this,
121803
121850
  _c = _vm._self._c;
121804
121851
  return _c('div', {
@@ -121853,7 +121900,7 @@ var polygonvue_type_template_id_7fe5b58b_render = function render() {
121853
121900
  }
121854
121901
  }, [_vm._v("保存")]), _vm._t("default")], 2)])], 1);
121855
121902
  };
121856
- var polygonvue_type_template_id_7fe5b58b_staticRenderFns = [];
121903
+ var polygonvue_type_template_id_4c27d54b_staticRenderFns = [];
121857
121904
 
121858
121905
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/polygon.vue?vue&type=script&lang=js&
121859
121906
 
@@ -121951,7 +121998,7 @@ var polygonvue_type_template_id_7fe5b58b_staticRenderFns = [];
121951
121998
  }
121952
121999
  },
121953
122000
  drawUpdate(data, autoZoom = false) {
121954
- if (!data) return;
122001
+ if (!data || !data.features) return;
121955
122002
  this.geoJson = data;
121956
122003
  this.position = data.features.map(item => item.geometry.coordinates.flat(Infinity));
121957
122004
  this.position = spArray(2, ...this.position);
@@ -121999,8 +122046,8 @@ var polygonvue_type_template_id_7fe5b58b_staticRenderFns = [];
121999
122046
  ;
122000
122047
  var polygon_component = normalizeComponent(
122001
122048
  draw_polygonvue_type_script_lang_js_,
122002
- polygonvue_type_template_id_7fe5b58b_render,
122003
- polygonvue_type_template_id_7fe5b58b_staticRenderFns,
122049
+ polygonvue_type_template_id_4c27d54b_render,
122050
+ polygonvue_type_template_id_4c27d54b_staticRenderFns,
122004
122051
  false,
122005
122052
  null,
122006
122053
  null,
@@ -122079,7 +122126,9 @@ const mapTools = {
122079
122126
  GeoAddress: GeoAddress,
122080
122127
  Geolocation: Geolocation,
122081
122128
  getElevation: getElevation,
122082
- geometryCollectionToFeatureCollection: geometryCollectionToFeatureCollection
122129
+ geometryCollectionToFeatureCollection: geometryCollectionToFeatureCollection,
122130
+ wgs84ToGcj02: wgs84ToGcj02,
122131
+ gcj02ToWgs84: gcj02ToWgs84
122083
122132
  };
122084
122133
 
122085
122134
  // 地图事件
package/xy-map.umd.js CHANGED
@@ -234,7 +234,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".snow[data-v-20664206]{position:absolu
234
234
 
235
235
  /***/ }),
236
236
 
237
- /***/ 5521:
237
+ /***/ 8185:
238
238
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
239
239
 
240
240
  "use strict";
@@ -248,7 +248,7 @@ __webpack_require__.r(__webpack_exports__);
248
248
 
249
249
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
250
250
  // Module
251
- ___CSS_LOADER_EXPORT___.push([module.id, ".tools[data-v-54603de0]{position:absolute;left:0;top:0;margin:15px;background-color:hsla(0,0%,100%,.9);padding:14px;border-radius:5px}.tools .tools-bar[data-v-54603de0]{cursor:pointer}.right-fixed[data-v-54603de0]{position:absolute;right:0;top:0;margin:15px}", ""]);
251
+ ___CSS_LOADER_EXPORT___.push([module.id, ".tools[data-v-4d022886]{position:absolute;left:0;top:0;margin:15px;background-color:hsla(0,0%,100%,.9);padding:14px;border-radius:5px}.tools .tools-bar[data-v-4d022886]{cursor:pointer}.right-fixed[data-v-4d022886]{position:absolute;right:0;top:0;margin:15px}", ""]);
252
252
  // Exports
253
253
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
254
254
 
@@ -42901,19 +42901,19 @@ var update = add("33a2ac54", content, true, {"sourceMap":false,"shadowMode":fals
42901
42901
 
42902
42902
  /***/ }),
42903
42903
 
42904
- /***/ 6831:
42904
+ /***/ 8689:
42905
42905
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
42906
42906
 
42907
42907
  // style-loader: Adds some css to the DOM by adding a <style> tag
42908
42908
 
42909
42909
  // load the styles
42910
- var content = __webpack_require__(5521);
42910
+ var content = __webpack_require__(8185);
42911
42911
  if(content.__esModule) content = content.default;
42912
42912
  if(typeof content === 'string') content = [[module.id, content, '']];
42913
42913
  if(content.locals) module.exports = content.locals;
42914
42914
  // add the styles to the DOM
42915
42915
  var add = (__webpack_require__(208)/* ["default"] */ .Z)
42916
- var update = add("7c244e5a", content, true, {"sourceMap":false,"shadowMode":false});
42916
+ var update = add("75e200d2", content, true, {"sourceMap":false,"shadowMode":false});
42917
42917
 
42918
42918
  /***/ }),
42919
42919
 
@@ -70753,19 +70753,63 @@ const geometryCollectionToFeatureCollection = geometryCollection => {
70753
70753
  const wgs84ToGcj02 = coord => {
70754
70754
  // 输入检查
70755
70755
  if (!Array.isArray(coord) || coord.length !== 2) {
70756
- throw new Error('Input must be an array with [longitude, latitude]');
70756
+ throw new Error('输入必须是包含经度和纬度的数组');
70757
70757
  }
70758
70758
  let [lng, lat] = coord.map(Number);
70759
70759
 
70760
70760
  // 检查输入是否为有效数字
70761
70761
  if (isNaN(lng) || isNaN(lat)) {
70762
- throw new Error('Coordinates must be valid numbers');
70762
+ throw new Error('坐标必须是有效的数字');
70763
70763
  }
70764
70764
 
70765
70765
  // 如果不在中国范围内,直接返回原坐标
70766
70766
  if (outOfChina(lng, lat)) {
70767
70767
  return [lng, lat];
70768
70768
  }
70769
+ // 使用迭代法求解,提高迭代次数以增加精度
70770
+ let dLng = 0,
70771
+ dLat = 0;
70772
+ let mLng = lng,
70773
+ mLat = lat;
70774
+
70775
+ // 增加迭代次数到10次提高精度
70776
+ for (let i = 0; i < 10; i++) {
70777
+ // 使用wgs84ToGcj02获取当前估计值对应的gcj02坐标
70778
+ let [gcjLng, gcjLat] = wgs84ToGcj02([mLng, mLat]);
70779
+ // 计算差值
70780
+ dLng = gcjLng - lng;
70781
+ dLat = gcjLat - lat;
70782
+ // 更新估计值
70783
+ mLng = mLng - dLng;
70784
+ mLat = mLat - dLat;
70785
+
70786
+ // 如果精度已经足够高,提前退出循环
70787
+ if (Math.abs(dLng) < 0.000000001 && Math.abs(dLat) < 0.000000001) {
70788
+ break;
70789
+ }
70790
+ }
70791
+ return [mLng, mLat];
70792
+ };
70793
+
70794
+ //高德坐标系Gcj02转换 WGS84
70795
+ const gcj02ToWgs84 = coord => {
70796
+ // 输入检查
70797
+ if (!Array.isArray(coord) || coord.length !== 2) {
70798
+ throw new Error('输入必须是包含经度和纬度的数组');
70799
+ }
70800
+ let [lng, lat] = coord.map(Number);
70801
+
70802
+ // 检查输入是否为有效数字
70803
+ if (isNaN(lng) || isNaN(lat)) {
70804
+ throw new Error('坐标必须是有效的数字');
70805
+ }
70806
+
70807
+ // 如果不在中国范围内,直接返回原坐标
70808
+ if (outOfChina(lng, lat)) {
70809
+ return [lng, lat];
70810
+ }
70811
+
70812
+ // 计算偏移量
70769
70813
  let dLat = transformLat(lng - 105.0, lat - 35.0);
70770
70814
  let dLng = transformLng(lng - 105.0, lat - 35.0);
70771
70815
  let radLat = lat / 180.0 * PI;
@@ -70774,9 +70818,11 @@ const wgs84ToGcj02 = coord => {
70774
70818
  let sqrtMagic = Math.sqrt(magic);
70775
70819
  dLat = dLat * 180.0 / (a * (1 - ee) / (magic * sqrtMagic) * PI);
70776
70820
  dLng = dLng * 180.0 / (a / sqrtMagic * Math.cos(radLat) * PI);
70777
- let gcjLat = lat + dLat;
70778
- let gcjLng = lng + dLng;
70779
- return [gcjLng, gcjLat];
70821
+
70822
+ // GCJ-02 to WGS-84
70823
+ let wgsLat = lat - dLat;
70824
+ let wgsLng = lng - dLng;
70825
+ return [wgsLng, wgsLat];
70780
70826
  };
70781
70827
 
70782
70828
  // 3857墨卡托坐标系转换为4326 (WGS84)经纬度坐标
@@ -120476,8 +120522,8 @@ var mapStyle_component = normalizeComponent(
120476
120522
  )
120477
120523
 
120478
120524
  /* harmony default export */ var mapStyle = (mapStyle_component.exports);
120479
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/index.vue?vue&type=template&id=54603de0&scoped=true&
120480
- var drawvue_type_template_id_54603de0_scoped_true_render = function render() {
120525
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/index.vue?vue&type=template&id=4d022886&scoped=true&
120526
+ var drawvue_type_template_id_4d022886_scoped_true_render = function render() {
120481
120527
  var _vm = this,
120482
120528
  _c = _vm._self._c;
120483
120529
  return _c('div', [_c('div', {
@@ -120614,7 +120660,7 @@ var drawvue_type_template_id_54603de0_scoped_true_render = function render() {
120614
120660
  staticClass: "right-fixed"
120615
120661
  }, [_vm._t("right-fixed")], 2)]);
120616
120662
  };
120617
- var drawvue_type_template_id_54603de0_scoped_true_staticRenderFns = [];
120663
+ var drawvue_type_template_id_4d022886_scoped_true_staticRenderFns = [];
120618
120664
 
120619
120665
  // EXTERNAL MODULE: ./node_modules/@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw.css
120620
120666
  var dist_mapbox_gl_draw = __webpack_require__(5620);
@@ -121269,6 +121315,7 @@ var shpFile_component = normalizeComponent(
121269
121315
  // coordinates: [this.lng, this.lat]
121270
121316
  // }
121271
121317
  this.geoJson = geoJson;
121318
+ if (!geoJson || !geoJson.features) return;
121272
121319
  geoJson.features.forEach(item => {
121273
121320
  this.draw.add(item.geometry);
121274
121321
  });
@@ -121364,9 +121411,9 @@ var shpFile_component = normalizeComponent(
121364
121411
  });
121365
121412
  ;// CONCATENATED MODULE: ./src/package/draw/index.vue?vue&type=script&lang=js&
121366
121413
  /* harmony default export */ var package_drawvue_type_script_lang_js_ = (drawvue_type_script_lang_js_);
121367
- // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-64.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[4]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/index.vue?vue&type=style&index=0&id=54603de0&prod&lang=scss&scoped=true&
121368
- var drawvue_type_style_index_0_id_54603de0_prod_lang_scss_scoped_true_ = __webpack_require__(6831);
121369
- ;// CONCATENATED MODULE: ./src/package/draw/index.vue?vue&type=style&index=0&id=54603de0&prod&lang=scss&scoped=true&
121414
+ // EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js??clonedRuleSet-64.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[3]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[4]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/index.vue?vue&type=style&index=0&id=4d022886&prod&lang=scss&scoped=true&
121415
+ var drawvue_type_style_index_0_id_4d022886_prod_lang_scss_scoped_true_ = __webpack_require__(8689);
121416
+ ;// CONCATENATED MODULE: ./src/package/draw/index.vue?vue&type=style&index=0&id=4d022886&prod&lang=scss&scoped=true&
121370
121417
 
121371
121418
  ;// CONCATENATED MODULE: ./src/package/draw/index.vue
121372
121419
 
@@ -121379,11 +121426,11 @@ var drawvue_type_style_index_0_id_54603de0_prod_lang_scss_scoped_true_ = __webpa
121379
121426
 
121380
121427
  var draw_component = normalizeComponent(
121381
121428
  package_drawvue_type_script_lang_js_,
121382
- drawvue_type_template_id_54603de0_scoped_true_render,
121383
- drawvue_type_template_id_54603de0_scoped_true_staticRenderFns,
121429
+ drawvue_type_template_id_4d022886_scoped_true_render,
121430
+ drawvue_type_template_id_4d022886_scoped_true_staticRenderFns,
121384
121431
  false,
121385
121432
  null,
121386
- "54603de0",
121433
+ "4d022886",
121387
121434
  null
121388
121435
 
121389
121436
  )
@@ -121602,8 +121649,8 @@ var point_component = normalizeComponent(
121602
121649
  )
121603
121650
 
121604
121651
  /* harmony default export */ var point = (point_component.exports);
121605
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/line.vue?vue&type=template&id=9381e4bc&
121606
- var linevue_type_template_id_9381e4bc_render = function render() {
121652
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/line.vue?vue&type=template&id=1e1a2862&
121653
+ var linevue_type_template_id_1e1a2862_render = function render() {
121607
121654
  var _vm = this,
121608
121655
  _c = _vm._self._c;
121609
121656
  return _c('div', {
@@ -121658,7 +121705,7 @@ var linevue_type_template_id_9381e4bc_render = function render() {
121658
121705
  }
121659
121706
  }, [_vm._v("保存")]), _vm._t("default")], 2)])], 1);
121660
121707
  };
121661
- var linevue_type_template_id_9381e4bc_staticRenderFns = [];
121708
+ var linevue_type_template_id_1e1a2862_staticRenderFns = [];
121662
121709
 
121663
121710
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/line.vue?vue&type=script&lang=js&
121664
121711
 
@@ -121756,7 +121803,7 @@ var linevue_type_template_id_9381e4bc_staticRenderFns = [];
121756
121803
  }
121757
121804
  },
121758
121805
  drawUpdate(data, autoZoom = false) {
121759
- if (!data) return;
121806
+ if (!data || !data.features) return;
121760
121807
  this.geoJson = data;
121761
121808
  this.position = data.features.map(item => item.geometry.coordinates.flat(Infinity));
121762
121809
  this.position = spArray(2, ...this.position); // 数组分割,两两一组
@@ -121805,8 +121852,8 @@ var linevue_type_template_id_9381e4bc_staticRenderFns = [];
121805
121852
  ;
121806
121853
  var line_component = normalizeComponent(
121807
121854
  draw_linevue_type_script_lang_js_,
121808
- linevue_type_template_id_9381e4bc_render,
121809
- linevue_type_template_id_9381e4bc_staticRenderFns,
121855
+ linevue_type_template_id_1e1a2862_render,
121856
+ linevue_type_template_id_1e1a2862_staticRenderFns,
121810
121857
  false,
121811
121858
  null,
121812
121859
  null,
@@ -121815,8 +121862,8 @@ var line_component = normalizeComponent(
121815
121862
  )
121816
121863
 
121817
121864
  /* harmony default export */ var draw_line = (line_component.exports);
121818
- ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/polygon.vue?vue&type=template&id=7fe5b58b&
121819
- var polygonvue_type_template_id_7fe5b58b_render = function render() {
121865
+ ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/polygon.vue?vue&type=template&id=4c27d54b&
121866
+ var polygonvue_type_template_id_4c27d54b_render = function render() {
121820
121867
  var _vm = this,
121821
121868
  _c = _vm._self._c;
121822
121869
  return _c('div', {
@@ -121871,7 +121918,7 @@ var polygonvue_type_template_id_7fe5b58b_render = function render() {
121871
121918
  }
121872
121919
  }, [_vm._v("保存")]), _vm._t("default")], 2)])], 1);
121873
121920
  };
121874
- var polygonvue_type_template_id_7fe5b58b_staticRenderFns = [];
121921
+ var polygonvue_type_template_id_4c27d54b_staticRenderFns = [];
121875
121922
 
121876
121923
  ;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/package/draw/polygon.vue?vue&type=script&lang=js&
121877
121924
 
@@ -121969,7 +122016,7 @@ var polygonvue_type_template_id_7fe5b58b_staticRenderFns = [];
121969
122016
  }
121970
122017
  },
121971
122018
  drawUpdate(data, autoZoom = false) {
121972
- if (!data) return;
122019
+ if (!data || !data.features) return;
121973
122020
  this.geoJson = data;
121974
122021
  this.position = data.features.map(item => item.geometry.coordinates.flat(Infinity));
121975
122022
  this.position = spArray(2, ...this.position);
@@ -122017,8 +122064,8 @@ var polygonvue_type_template_id_7fe5b58b_staticRenderFns = [];
122017
122064
  ;
122018
122065
  var polygon_component = normalizeComponent(
122019
122066
  draw_polygonvue_type_script_lang_js_,
122020
- polygonvue_type_template_id_7fe5b58b_render,
122021
- polygonvue_type_template_id_7fe5b58b_staticRenderFns,
122067
+ polygonvue_type_template_id_4c27d54b_render,
122068
+ polygonvue_type_template_id_4c27d54b_staticRenderFns,
122022
122069
  false,
122023
122070
  null,
122024
122071
  null,
@@ -122097,7 +122144,9 @@ const mapTools = {
122097
122144
  GeoAddress: GeoAddress,
122098
122145
  Geolocation: Geolocation,
122099
122146
  getElevation: getElevation,
122100
- geometryCollectionToFeatureCollection: geometryCollectionToFeatureCollection
122147
+ geometryCollectionToFeatureCollection: geometryCollectionToFeatureCollection,
122148
+ wgs84ToGcj02: wgs84ToGcj02,
122149
+ gcj02ToWgs84: gcj02ToWgs84
122101
122150
  };
122102
122151
 
122103
122152
  // 地图事件