JS计算两个点(经纬度)的距离
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19function getGreatCircleDistance(lat1, lng1, lat2, lng2) { var EARTH_RADIUS = 6378137.0; var PI = Math.PI; function getRad(d) { return d * PI / 180.0; } var radLat1 = getRad(lat1); var radLat2 = getRad(lat2); var a = radLat1 - radLat2; var b = getRad(lng1) - getRad(lng2); var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2))); s = s * EARTH_RADIUS; s = Math.round(s * 10000) / 10000.0; return s; // 公里数 }
JS判断某个点是否在某个区域(经纬度)内
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52/** * 预处理判断 某个点是否在某个区域 * @param {*} lng * @param {*} lat * @param {*} points such as '120.133446,30.271645||120.133153,30.271669||120.133138,30.271595||' */ function preceedPointInArea(lng, lat, points) { var parking_gps = points var gpsStringArray = parking_gps.split('||') var polygon = [] for (var index in gpsStringArray) { var item = gpsStringArray[index] var point = item.split(',') if (point.length == 2) { point['lng'] = parseFloat(point[0]) point['lat'] = parseFloat(point[1]) polygon.push(point) } } var flag = isPointInPolygon(polygon, lng, lat) return flag; } /** * 某个点是否在某个区域 */ function isPointInPolygon(polygon, lng, lat) { var numberOfPoints = polygon.length; var polygonLats = []; var polygonLngs = []; for (var i = 0; i < numberOfPoints; i++) { polygonLats.push(polygon[i]['lat']); polygonLngs.push(polygon[i]['lng']); } var polygonContainsPoint = false; for (var node = 0, altNode = (numberOfPoints - 1); node < numberOfPoints; altNode = node++) { if ((polygonLngs[node] > lng != (polygonLngs[altNode] > lng)) && (lat < (polygonLats[altNode] - polygonLats[node]) * (lng - polygonLngs[node]) / (polygonLngs[altNode] - polygonLngs[node]) + polygonLats[node] ) ) { polygonContainsPoint = !polygonContainsPoint; } } return polygonContainsPoint; }
转载于:https://www.cnblogs.com/wjf0/p/9928522.html
最后
以上就是呆萌咖啡最近收集整理的关于Javascript判断两个点(经纬度)的距离,以及是否在某个区域内(经纬度字符串)的全部内容,更多相关Javascript判断两个点(经纬度)内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复