gis-common 1.1.7 → 1.1.9

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.
@@ -545,6 +545,9 @@ Array.prototype.sum = function () {
545
545
  return prev + curr;
546
546
  }) : 0;
547
547
  };
548
+ Array.prototype.avg = function () {
549
+ return this.length ? this.sum() / this.length : 0;
550
+ };
548
551
  Array.prototype.desc = function (f) {
549
552
  return this.sort(function (n1, n2) {
550
553
  return (f ? f(n2) : n2) - (f ? f(n1) : n1);
@@ -1132,7 +1135,7 @@ function splitWords(str) {
1132
1135
  * @returns {*} {boolean}
1133
1136
  */
1134
1137
  isLnglat: function isLnglat(lng, lat) {
1135
- return !!(+lat > 0 && +lat < 90 && +lng > 0 && +lng < 180);
1138
+ return !!(+lat > -90 && +lat < 90 && +lng > -180 && +lng < 180);
1136
1139
  },
1137
1140
 
1138
1141
  /**
@@ -1148,13 +1151,7 @@ function splitWords(str) {
1148
1151
  var a = parseFloat(value);
1149
1152
  var degree = parseInt(a);
1150
1153
  var min = parseInt((a - degree) * 60);
1151
- if (min < 10) {
1152
- min = '0' + min;
1153
- }
1154
- var sec = parseInt((a - degree) * 3600 - min * 60);
1155
- if (sec < 10) {
1156
- sec = '0' + sec;
1157
- }
1154
+ var sec = parseFloat((a - degree) * 3600 - min * 60);
1158
1155
  return degree + '°' + min + '′' + sec + '″';
1159
1156
  }
1160
1157
  if (lng && lat) {
@@ -1163,6 +1160,33 @@ function splitWords(str) {
1163
1160
  return res;
1164
1161
  },
1165
1162
 
1163
+ /**
1164
+ * 度分秒转十进制
1165
+ *
1166
+ * @param {*} lng
1167
+ * @param {*} lat
1168
+ * @returns {*}
1169
+ */
1170
+ transformLnglat: function transformLnglat(lng, lat) {
1171
+ function dms2deg(s) {
1172
+ var sw = /[sw]/i.test(s);
1173
+ var f = sw ? -1 : 1;
1174
+ var bits = s.match(/[\d.]+/g);
1175
+ var result = 0;
1176
+ for (var i = 0, iLen = bits.length; i < iLen; i++) {
1177
+ result += bits[i] / f;
1178
+ f *= 60;
1179
+ }
1180
+ return result;
1181
+ }
1182
+ if (lng && lat) {
1183
+ return {
1184
+ lng: dms2deg(lng),
1185
+ lat: dms2deg(lat)
1186
+ };
1187
+ }
1188
+ },
1189
+
1166
1190
  /**
1167
1191
  * 判断点是否在多边形内
1168
1192
  *
@@ -1259,6 +1283,19 @@ function splitWords(str) {
1259
1283
  var fwdAz = Math.atan2(cosU2 * sinLambda, cosU1 * sinU2 - sinU1 * cosU2 * cosLambda);
1260
1284
  var revAz = Math.atan2(cosU1 * sinLambda, -sinU1 * cosU2 + cosU1 * sinU2 * cosLambda);
1261
1285
  return s;
1286
+ },
1287
+
1288
+ /**
1289
+ * P1绕一个坐标点P2旋转θ角度后,新的坐标的计算公式
1290
+ *
1291
+ * @param {*} p1
1292
+ * @param {*} p2
1293
+ * @param {*} θ 旋转角度,正:表示顺时针,负:表示逆时针
1294
+ */
1295
+ rotatePoint: function rotatePoint(p1, p2, θ) {
1296
+ var x = (p1.x - p2.x) * Math.cos(Math.PI / 180 * -θ) - (p1.y - p2.y) * Math.sin(Math.PI / 180 * -θ) + p2.x;
1297
+ var y = (p1.x - p2.x) * Math.sin(Math.PI / 180 * -θ) + (p1.y - p2.y) * Math.cos(Math.PI / 180 * -θ) + p2.y;
1298
+ return { x: x, y: y };
1262
1299
  }
1263
1300
  });
1264
1301
  // CONCATENATED MODULE: ./src/utils/FileUtils.js
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "gis-common",
3
3
  "description": "gis-common",
4
4
  "main": "dist/resource.min.js",
5
- "version": "1.1.7",
5
+ "version": "1.1.9",
6
6
  "author": "Guo.Yan <luv02@vip.qq.com>",
7
7
  "license": "MIT",
8
8
  "private": false,