百度地图API:JavaScript开源库几何运算判断点是否在多边形内(电子围栏)

这篇具有很好参考价值的文章主要介绍了百度地图API:JavaScript开源库几何运算判断点是否在多边形内(电子围栏)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 漏刻有时百度地图API实战开发(1)华为手机无法使用addEventListener click 的兼容解决方案
  2. 漏刻有时百度地图API实战开发(2)文本标签显示和隐藏的切换开关
  3. 漏刻有时百度地图API实战开发(3)自动获取地图多边形中心点坐标
  4. 漏刻有时百度地图API实战开发(4)显示指定区域在移动端异常的解决方案
  5. 漏刻有时百度地图API实战开发(5)区域限制移动端鬼畜抖动的解决方案
  6. 漏刻有时百度地图API实战开发(6)多个标注覆盖层级导致不能响应点击的问题
  7. 漏刻有时百度地图API实战开发(7)JavaScript开源库几何运算判断点是否在多边形内(电子围栏)
  8. 漏刻有时百度地图API实战开发(8):圆形区域周边搜索地图监听事件(覆盖物重叠显示层级\图像标注监听事件、setZIndex和setTop方法)
    百度地图API:JavaScript开源库几何运算判断点是否在多边形内(电子围栏),地图开发,百度,javascript,开发语言
    百度地图JavaScript开源库,是一套基于百度地图API二次开发的开源的代码库。目前提供多个lib库,帮助开发者快速实现在地图上添加Marker、自定义信息窗口、标注相关开发、区域限制设置、几何运算、实时交通、检索与公交驾车查询、鼠标绘制工具等功能。

判断点是否在多边形内,主要使用的GeoUtils类。它提供若干几何算法,用来帮助用户判断点与矩形、 圆形、多边形线、多边形面的关系,并提供计算折线长度和多边形的面积的公式。 主入口类是GeoUtils。

引入JS封装库

    <script type="text/javascript" src="//api.map.baidu.com/api?v=3.0&ak=3HGqGo***"></script>
    <script type="text/javascript" src="//api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils_min.js"></script>

构建HTML地图容器

<div style="float:left;width:600px;height:500px;padding: 15px;" id="container"></div>

核心代码

var map = new BMap.Map("container");
    var pt = new BMap.Point(116.404, 39.915);
    map.centerAndZoom(pt, 16);
    map.enableScrollWheelZoom();//开启滚动缩放

    //电子围栏
    var pts = [];
    var pt1 = new BMap.Point(116.395, 39.910);
    var pt2 = new BMap.Point(116.394, 39.914);
    var pt3 = new BMap.Point(116.403, 39.920);
    var pt4 = new BMap.Point(116.402, 39.914);


    pts.push(pt1);
    pts.push(pt2);
    pts.push(pt3);
    pts.push(pt4);

    var opts = {
        fillColor: 'blue',
        fillOpacity: 0.3,
        strokeColor: 'blue',
        strokeStyle: "dashed",
        strokeWeight: 1,
        strokeOpacity: 0.5
    }
    var ply = new BMap.Polygon(pts, opts);
    map.addOverlay(ply);

    //地图监听事件
    map.addEventListener('click', function (e) {
        var x = e.point.lng;
        var y = e.point.lat;
        var newPoint = new BMap.Point(x, y);
        var mkr = new BMap.Marker(newPoint);
        map.addOverlay(mkr);

        //判断时间
        ptInPolygon(newPoint, ply);
    })

    var allOverlay = map.getOverlays();
    console.log(allOverlay[0]);

    //点在多边形内
    function ptInPolygon(pt, ply) {
        var result = BMapLib.GeoUtils.isPointInPolygon(pt, ply);
        if (result == true) {
            $("#control").append("操作在电子围栏内<br>");
        } else {
            $("#control").append("超出电子围栏<br>");
        }
    }

封装函数及优化


@漏刻有时文章来源地址https://www.toymoban.com/news/detail-722369.html

到了这里,关于百度地图API:JavaScript开源库几何运算判断点是否在多边形内(电子围栏)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 百度地图API的使用

    这篇文章主要想让读者掌握: 百度地图官网 API 百度地图JavaScript API 当前的位置在网页中显示,插入地图 拖拽 点击事件。 应用场景:网页插入百度地图 注意:不关注定位、距离、公交,这些功能一般结合移动端GPS实现 第一步:进入官网 百度地图JavaScript API 直接搜百度地图

    2024年02月14日
    浏览(83)
  • 【QT--使用百度地图API显示地图并绘制路线】

    先吐槽一下下,本身qt学的就不咋滴,谁想到第一件事就是让写一个上位机工具,根据CAN总线传来的位置信息,在地图上去绘制路线,并获取当前路段的限速信息等。当听到这个需求的时候,第一时间是有点懵逼的。自己原本是没接触过这方面的知识,而且qt学的也特别的垃圾

    2024年01月24日
    浏览(47)
  • Javascript判断时间是否处于今天、本周、当月

      Javascript判断时间戳/时间日期字符串是否处于今天、本周、当月,三个时间范围。   水平有限,可能逻辑会比较繁琐,如果有更好的方法欢迎赐教。 判断是否是今天 传参:param为时间戳(默认) / 日期时间字符串,type为timestamp / datetime 示例:  todayJudge(1669961510000)  

    2024年02月15日
    浏览(51)
  • 百度地图API的使用(附案例)

    百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可帮助您在网站中构建功能丰富、交互性强的地图应用,支持PC端和移动端基于浏览器的地图应用开发,且支持HTML5特性的地图开发。 在控制台里选择创建应用 选择浏览器端,白名单输入* 我们直接把文档内的代码

    2024年02月06日
    浏览(101)
  • Jmeter之BeanShell取出参数进行四则运算,并判断是否正确

    首先调用余额接口,使用正则提取响应中的余额字段,记作变量acctBal1 做支付交易 再次调用余额接口,使用正则提取响应中的余额字段,记作变量acctBal2 最后在结果树中可以看到断言错误的信息,断言正确时没有提示 以下是beanshell断言脚本

    2024年02月13日
    浏览(45)
  • 【JavaWeb】百度地图API SDK导入

    百度地图开放平台 | 百度地图API SDK | 地图开发 (baidu.com) 登录注册,创建应用,获取AK 地理编码 | 百度地图API SDK (baidu.com) 需要的接口一: 获取店铺/用户 所在地址的经纬度坐标 轻量级路线规划 | 百度地图API SDK (baidu.com) 需要的接口二: 通过拿到的起点与终点坐标 进行计算

    2024年04月09日
    浏览(77)
  • JavaScript 判断是否为数字的几种方式

    喜欢博主的文章,欢迎关注、点赞👍、收藏⭐️、留言📝支持,谢谢大家 js判断是否为数字的方式很多: typeof 、 instanceof 、 Number.isNumber parseInt 、 parseFloat isNaN 、 isFinite Number.isNaN 、 Number.isFinite 正则表达式 终极方案 我们逐一介绍,希望能帮到大家。 typeof 判断值是不是基

    2023年04月10日
    浏览(63)
  • JavaScript判断变量是否为undefined的两种写法

    可以使用 typeof 操作符来判断一个变量是否为 undefined 类型 也可以使用严格相等运算符 === 来判断一个变量是否为 undefined 注意: 不要使用 == 运算符来判断一个变量是否为 undefined 因为它会在比较之前进行 类型转换 ,可能导致意外的结果。 如果要判断一个变量是否未定义(既

    2024年02月14日
    浏览(50)
  • JavaScript判断时间间隔是否连续为一天的方法

    在开发中,我们经常需要判断一个数组中的对象的时间间隔是否连续。本文将介绍一个方法,通过对数组中的对象进行排序和比较,来判断时间是否从00:00到24:00连续。 假设我们有一个数组,其中包含多个对象,每个对象都有开始时间和结束时间。我们需要判断这些时间间隔

    2024年01月18日
    浏览(67)
  • JavaScript判断对象是否为空对象的几种方法

    目录 1、空对象对应的字符串为 \\\"{}\\\" 2、for in 3、jquery 的 isEmptyObject()方法 4、Object.getOwnPropertyNames() 5、ES6 的 Object.keys() JSON.stringify()扩展 1、第一大特性 小结 2、第二大特性 3、第三大特性 4、第四大特性 5、第五大特性 6、第六大特性 7、第七大特性 8、第八大特性 var data = {}; v

    2024年01月16日
    浏览(87)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包