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.
- package/dist/resource.min.js +45 -8
- package/package.json +1 -1
package/dist/resource.min.js
CHANGED
|
@@ -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 >
|
|
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
|
-
|
|
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
|