码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 百度地图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方法)
      在这里插入图片描述
      百度地图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>
    
    
    • 1
    • 2
    • 3

    构建HTML地图容器

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

    核心代码

    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("操作在电子围栏内
    "
    ); } else { $("#control").append("超出电子围栏
    "
    ); } }
    • 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
    • 53

    封装函数及优化


    @漏刻有时

  • 相关阅读:
    SpringMVC之CRUD------增删改查
    小琳AI课堂:MASS模型——革新自然语言处理的预训练技术
    mysql8-基于docker搭建主从同步
    分享一下做一个电商小程序可以实现什么功能
    这是一个隐藏的(绝世武功)Java 学习路线图,祝你Offer拿到手软
    java.time.LocalDateTime详解
    【Unity】LODGroup 计算公式
    openGauss学习笔记-127 openGauss 数据库管理-设置账本数据库-修复账本数据库
    Graph RAG: 知识图谱结合 LLM 的检索增强
    异步FIFO设计的仿真与综合技术(1)
  • 原文地址:https://blog.csdn.net/weixin_41290949/article/details/133943862
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号