vue使用高德地图画电子围栏_电子围栏的实现(二):几何路径法(推荐)

该博客介绍了如何使用Java的GeneralPath类结合Path2D的contains方法,判断一个点是否在由直线和曲线构成的多边形内部,以实现Vue应用中的电子围栏功能。示例代码展示了创建多边形并检查点是否在多边形内的过程。
摘要由CSDN通过智能技术生成

在Java语言的开发环境中,提供了一种便捷的方法。类java.awt..geom.GeneralPath提供了根据直线、二次曲线和三次曲线构造的几何路径的方法,同时GeneralPath类继承类Path2D,通过Path2D类提供的方法contains(double x,double y)来判断某个点是否在曲线或直线构成的边界内。

package com.test;

import java.awt.geom.GeneralPath;

import java.awt.geom.Point2D;

import java.util.ArrayList;

import java.util.List;

public class ElectronicFence {

/**

* 测试一个点是否在多边形内

* @param args

*/

public static void main(String[] args) {

//点在多边形内

Point2D.Double point = new Point2D.Double(116.395, 39.910);

//点在多边形外

//Point2D.Double point = new Point2D.Double(116.404072, 39.916605);

List polygon = new ArrayList();

polygon.add(new Point2D.Double(116.395, 39.910));

polygon.add(new Point2D.Double(116.394, 39.914));

polygon.add(new Point2D.Double(116.403, 39.920));

polygon.add(new Point2D.Double(116.402, 39.914));

polygon.add(new Point2D.Double(116.410, 39.913));

if(polygon.contains(point)){

System.out.println("点在多边形内");

}else{

System.out.println("点在多边形外");

}

}

/**

* 判断点是否在多边形内

* 步骤:

* ①声明一个“画笔”

* ②将“画笔”移动到多边形的第一个顶点

* ③用“画笔”按顺序将多边形的顶点连接起来

* ④用“画笔”将多边形的第一个点连起来,最终形成一个封闭的多边形

* ⑤用contains()方法判断点是否在多边形区域内

* @param polygon多边形

* @param point检测点

* @return点在多边形内返回true,否则返回false

*/

public static boolean contains(List polygon, Point2D.Double point){

GeneralPath p = new GeneralPath();

Point2D.Double first = polygon.get(0);

p.moveTo(first.x, first.y);

for(Point2D.Double d : polygon){

p.lineTo(d.x, d.y);

}

p.lineTo(first.x, first.y);

p.closePath();

return p.contains(point);

}

}

其中p为构造的GeneralPath对象,polygon包含了多边形顶点的List对象,每个顶点被定义为Point2D.Double类型。point则是要判断的点,其类型也为Point2D.Double。p.contains(point)返回true则表示点point包含在多边形polygon内。

转载自:https://blog.csdn.net/Johnson8702/article/details/82150371

Vue是一个流行的JavaScript框架,可以用于构建用户界面。高德地图是一种流行的地图服务,它提供了丰富的地图功能和API。电子围栏是一种边界区域,当特定的设备或人员进入或离开该区域时会触发警报或其他特定操作。 在Vue使用高德地图电子围栏,首先需要在Vue项目中引入高德地图的JavaScript API,可以通过在index.html文件中引入相应的脚本来实现,然后在组件中使用Vue的生命周期钩子函数进行初始化和销毁。 在组件中,我们可以使用高德地图的API创建一个地图实例,并设置地图的中心点和缩放级别。然后,我们可以使用地图的绘图工具来创建电子围栏的多边形或圆形,可以通过监听绘图结束事件来获取围栏的坐标信息。 接下来,我们可以使用高德地图的围栏服务API来创建电子围栏。可以通过调用相应的方,传入围栏的名称、坐标信息和其他参数来创建电子围栏。可以根据需求设置围栏的类型,如圆形、多边形等,以及警报触发的条件和动作。 在Vue中,可以通过使用指令或绑定事件来实现电子围栏的交互。可以使用v-on指令来监听电子围栏的进入或离开事件,并触发相应的方或动作。可以在方实现警报、通知或其他功能,以响应电子围栏的状态变化。 总之,Vue高德地图电子围栏可以通过使用高德地图的API和Vue的生命周期钩子函数,实现Vue项目中创建和管理电子围栏及其交互的功能。通过结合Vue的灵活性和高德地图的丰富功能,可以实现各种场景下的电子围栏应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值