怎么用javascript判断该坐标是否在地图区域范围内
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍"怎么用javascript判断该坐标是否在地图区域范围内",在日常操作中,相信很多人在怎么用javascript判断该坐标是否在地图区域范围内问题上存在疑惑,小编查阅了各式资料,整理
千家信息网最后更新 2025年02月02日怎么用javascript判断该坐标是否在地图区域范围内
这篇文章主要介绍"怎么用javascript判断该坐标是否在地图区域范围内",在日常操作中,相信很多人在怎么用javascript判断该坐标是否在地图区域范围内问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用javascript判断该坐标是否在地图区域范围内"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
具体需求如下:
根据腾讯地图划分配送区域,总站下边设多个配送分站,然后将订单中的收货地址将其分配给不同的配送分站。
1、地图区域划分(腾讯地图)
1.1、HTML
重置地图
1.2、JS
//初始化新地图 initNewMap:function(){ var map = new qq.maps.Map(document.getElementById("container"), { center: new qq.maps.LatLng(36.05562,103.88191),// 地图的中心地理坐标。 zoom:13// 地图的中心地理坐标。 }); var drawingManagerOpt = new qq.maps.drawing.DrawingManager({ drawingMode: qq.maps.drawing.OverlayType.POLYGON, drawingControl: true, drawingControlOptions: { position: qq.maps.ControlPosition.TOP_CENTER, drawingModes: [ qq.maps.drawing.OverlayType.POLYGON ] }, circleOptions: { fillColor: new qq.maps.Color(255, 208, 70, 0.3), strokeColor: new qq.maps.Color(88, 88, 88, 1), strokeWeight: 3, clickable: false } }); drawingManagerOpt.setMap(map); var points = ""; qq.maps.event.addListener(drawingManagerOpt, 'overlaycomplete', function(event) { event.overlay.getPath().forEach(function(e){ var lng=e.getLng(); var lat=e.getLat(); points+=lng+","+lat+"-"; }); points=points.substring(0, points.length-1); vm.getPeopleDataByPolygon(points); }); }, //初始化老的地图 initOldMap:function(value){ var map = new qq.maps.Map(document.getElementById("container"), { center: new qq.maps.LatLng(36.05562,103.88191),// 地图的中心地理坐标。 zoom:13// 地图的中心地理坐标。 }); //获取旧坐标 let data = $("#jqGrid").jqGrid('getRowData', getSelectedRow("#jqGrid")); var areaCoordinateArray = new Array(); areaCoordinateArray = data.areaCoordinate.split("-"); var path = new Array(); for(var i=0;i1.3、结果:
2、判断坐标是否在多边形区域内
/** * 判断是否在多边形区域内 * * @param pointLon * 要判断的点的纵坐标 * @param pointLat * 要判断的点的横坐标 * @param lon * 区域各顶点的纵坐标数组 * @param lat * 区域各顶点的横坐标数组 * @return */ public static boolean isInPolygon(double pointLon, double pointLat, double[] lon, double[] lat) { // 将要判断的横纵坐标组成一个点 Point2D.Double point = new Point2D.Double(pointLon, pointLat); // 将区域各顶点的横纵坐标放到一个点集合里面 ListpointList = new ArrayList (); double polygonPoint_x = 0.0, polygonPoint_y = 0.0; for (int i = 0; i < lon.length; i++) { polygonPoint_x = lon[i]; polygonPoint_y = lat[i]; Point2D.Double polygonPoint = new Point2D.Double(polygonPoint_x, polygonPoint_y); pointList.add(polygonPoint); } return check(point, pointList); } /** * 一个点是否在多边形内 * * @param point * 要判断的点的横纵坐标 * @param polygon * 组成的顶点坐标集合 * @return */ private static boolean check(Point2D.Double point, List polygon) { java.awt.geom.GeneralPath peneralPath = new java.awt.geom.GeneralPath(); Point2D.Double first = polygon.get(0); // 通过移动到指定坐标(以双精度指定),将一个点添加到路径中 peneralPath.moveTo(first.x, first.y); polygon.remove(0); for (Point2D.Double d : polygon) { // 通过绘制一条从当前坐标到新指定坐标(以双精度指定)的直线,将一个点添加到路径中。 peneralPath.lineTo(d.x, d.y); } // 将几何多边形封闭 peneralPath.lineTo(first.x, first.y); peneralPath.closePath(); // 测试指定的 Point2D 是否在 Shape 的边界内。 return peneralPath.contains(point); } 到此,关于"怎么用javascript判断该坐标是否在地图区域范围内"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
坐标
地图
区域
纵坐标
范围
地理
多边形
顶点
学习
分站
数组
更多
横坐标
精度
路径
腾讯
帮助
不同
实用
接下来
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
合盛网络技术有限责任公司
网络安全影响商务吗
信息网络安全工作总结
电脑数据库密码忘了怎么找
我国网络安全管理规定
设计一个项目数据库系统
x99装什么服务器系统
安橙网络技术有限公司
数据库有无重复
飞机性能数据库
怎么跟客服申请服务器回档
上海倚灜互联网科技有限公司
登录oa服务器地址
阿里云数据库怎么重置密码
网络安全知识例子
数据库公式实例
数据库数据总量
危害网络安全的活动包括
网络安全的英语博文
质量过硬的数据库运维管理
传世数据库改元宝
神武服务器连接失败
逆变器软件开发工程师
国服大服务器
软件开发国企
恒玄科技软件开发
未管理的服务器
软件开发中哪个阶段最重要
在我的世界中怎么弄自已的服务器
江西省网络安全等级测评