百度地图框选标注坐标点功能

未来新城交通可达性建模:从呼吸节奏到有效可达率 城市交通可达性是智慧城市规划与交通工程的核心基础概念,其本质是时空耦合下人、设施与路网的动态响应关系。传统‘步行500米覆盖率’等静态指标忽视物理阻隔、时间成本与服务品质,导致规划失真;而基于手机信令、GIS与网络分析的动态可达率建模,可量化需求脉冲、供需相位差与功能混合度,支撑精准诊断与可解释干预。本文聚焦‘未来新城’典型场景,融合GeoPandas空间分析、NetworkX路网建模与Statsmodels异质性回归,构建‘空间—时间—干预’三层逻辑链,将抽象规划指标转化为可测量、可追溯、可落地的有效可达 阅读详情

在百度地图上面画矩形,不规则多边形,圆形,线等,并获取框选的标注坐标点功能;js判断坐标点是否在某个范围内


MapSelect.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MapSelect.aspx.cs" Inherits="BaiduMapSelect.MapSelect" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <style type="text/css">
        body, html, #allmap {
            font-family: "微软雅黑";
            height: 95%;
            margin: 0;
            overflow: hidden;
            width: 100%;
        }
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=OGTkT2pvBcNb*******Skzxmm9mek"></script>

    <!--加载鼠标绘制工具-->
    <script type="text/javascript" src="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.js"></script>
    <link rel="stylesheet" href="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.css" />
    <!--加载检索信息窗口-->
    <%--<script type="text/javascript" src="http://api.map.baidu.com/library/SearchInfoWindow/1.4/src/SearchInfoWindow_min.js"></script>
    <link rel="stylesheet" href="http://api.map.baidu.com/library/SearchInfoWindow/1.4/src/SearchInfoWindow_min.css" />--%>
    <%--<script type="text/javascript" src="http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils_min.js"></script>--%>
    <script type="text/javascript" src="http://api.map.baidu.com/library/TextIconOverlay/1.2/src/TextIconOverlay_min.js"></script>
    <script type="text/javascript" src="http://api.map.baidu.com/library/MarkerClusterer/1.2/src/MarkerClusterer_min.js"></script>
</head>
<body>
    <div id="allmap" style="overflow: hidden; position: relative; zoom: 1;">
        <div id="map" style="-webkit-transition: all 0.5s ease-in-out; height: 95%; transition: all 0.5s ease-in-out;"></div>
    </div>
    <input type="button" value="清除所有覆盖物" onclick="clearAll()" />
    <input type="button" value="获取区域选择的标注点集合" onclick="getOverlayPath()" />
    <script type="text/javascript">

        // 百度地图API功能
        var map = new BMap.Map("map");
        var point = new BMap.Point(113.323685, 23.130522);
        map.centerAndZoom(point, 15);
        //map.centerAndZoom(point, 8);

        map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
        // 编写自定义函数,创建标注
        function addMarker(point, id) {
            var marker = new BMap.Marker(point);
            map.addOverlay(marker);
            addClickHandler("id为:" + id, marker);
        }

        var opts = {
            width: 100, // 信息窗口宽度
            height: 80, // 信息窗口高度
            title: "信息窗口", // 信息窗口标题
            enableMessage: false //设置允许信息窗发送短息
        };

        function addClickHandler(content, marker) {
            marker.addEventListener("click", function (e) {
                openInfo(content, e);
            }
            );
        }

        function openInfo(content, e) {
            var p = e.target;
            var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat);
            var infoWindow = new BMap.InfoWindow(content, opts); // 创建信息窗口对象 
            map.openInfoWindow(infoWindow, point); //开启信息窗口
        }

        // 随机向地图添加25个标注
        var bounds = map.getBounds();
        var sw = bounds.getSouthWest();
        var ne = bounds.getNorthEast();
        var lngSpan = Math.abs(sw.lng - ne.lng);
        var latSpan = Math.abs(ne.lat - sw.lat);
        var allPointArray = [];
        var markers = [];
        for (var i = 0; i < 20; i++) {
            var point = new BMap.Point(sw.lng + lngSpan * (Math.random() * 0.7), ne.lat - latSpan * (Math.random() * 0.7));
            allPointArray.push({ Point: point, Id: i });
            addMarker(point, i);

            //markers.push(point);
        }

        //最简单的用法,生成一个marker数组,然后调用markerClusterer类即可。
        //var markerClusterer = new BMapLib.MarkerClusterer(map, { markers: markers });

        var overlays = [];
        var overlaycomplete = function (e) {
            clearAll();
            overlays.push(e.overlay);
            e.overlay.enableEditing();
            e.overlay.addEventListener("lineupdate", function (e) {
                showLatLon(e.currentTarget);
            });
            var pointArray = e.overlay.getPath();
            map.setViewport(pointArray); //调整视野
        };
        var styleOptions = {
            strokeColor: "red", //边线颜色。
            fillColor: "red", //填充颜色。当参数为空时,圆形将没有填充效果。
            strokeWeight: 2, //边线的宽度,以像素为单位。
            strokeOpacity: 0.5, //边线透明度,取值范围0 - 1。
            fillOpacity: 0.3, //填充的透明度,取值范围0 - 1。
            strokeStyle: 'solid' //边线的样式,solid或dashed。
        };
        //实例化鼠标绘制工具
        var drawingManager = new BMapLib.DrawingManager(map, {
            isOpen: false, //是否开启绘制模式
            enableDrawingTool: true, //是否显示工具栏
            drawingToolOptions: {
                anchor: BMAP_ANCHOR_TOP_RIGHT, //位置
                offset: new BMap.Size(5, 5), //偏离值
            },
            circleOptions: styleOptions, //圆的样式
            polylineOptions: styleOptions, //线的样式
            polygonOptions: styleOptions, //多边形的样式
            rectangleOptions: styleOptions //矩形的样式
        });
        //添加鼠标绘制工具监听事件,用于获取绘制结果
        drawingManager.addEventListener('overlaycomplete', overlaycomplete);

        function clearAll() {
            for (var i = 0; i < overlays.length; i++) {
                map.removeOverlay(overlays[i]);
            }
            overlays.length = 0;
        }

        function getOverlayPath() {
            var box = overlays[overlays.length - 1];
            var pointArray = box.getPath();
            map.setViewport(pointArray); //调整视野

            var bound = map.getBounds(); //地图可视区域
            var s = "圈选的ID有:";
            for (var i = 0; i < allPointArray.length; i++) {
                if (bound.containsPoint(allPointArray[i].Point) == true) {
                    if (isInsidePolygon(allPointArray[i].Point, pointArray))
                        s += allPointArray[i].Id + ",";
                }
            }
            alert(s);
        }

        var overlaysCache = [];

        function showLatLon(a) {
            var len = a.length;
            var arr = [];
            for (var i = 0; i < len - 1; i++) {
                arr.push([a[i].lng, a[i].lat]);
            }
            this.overlaysCache = arr;
        }

        //判断一个标注点是否在多边形里
        //pt标注点,poly多边形数组
        function isInsidePolygon(pt, poly) {
            for (var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i)
                ((poly[i].lat <= pt.lat && pt.lat < poly[j].lat) || (poly[j].lat <= pt.lat && pt.lat < poly[i].lat)) &&
                (pt.lng < (poly[j].lng - poly[i].lng) * (pt.lat - poly[i].lat) / (poly[j].lat - poly[i].lat) + poly[i].lng) &&
                (c = !c);
            return c;
        }
</script>
</body>
</html>

运行结果如图:

这里写图片描述

百度地图API地图描点示例 百度地图API是为开发者免费提供的一套基于百度地图服务的应用接口,包括JavaScript API、Web服务API、Android SDK、iOS SDK、定位SDK、车联网API、LBS云等多种开发工具与服务,提供基本地图展现、搜索、定位、逆/地理编码、路线规划、LBS云存储与检索等功能,适用于PC端、移动端、服务器等多种设备,多种操作系统下的地图应用开发。百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富、交互性强的地图应用程序。百度地图API不仅包含构建地图的基本功能接口,还提供了诸如本地搜索、路线规划等数据服务。适用于PC或移动设备端的基于浏览器的开发。JS版本还为用户开放了开源库,简化开发。 立即下载

相关推荐

TK抓包协议分析:So层逆向

第三个参数是一个回调函数,这里他的返回值1表示成功,0表示失败,那我们手动把他Hook为0,让他不支持quic协议,实现降级。等,我们是为了解决抓包问题,那很有可能是在net目录下(network),那来搜索一下。开了抓包以后APP直接是网络无连接了,并且抓到的请求也是不正常的,下面我们就开始定位。看了半天感觉也没啥有用的东西,那下面我们整理一下已经有信息,来猜测一下,后续怎么进行。那可以猜测,我们真正需要Hook的那个函数也有可能是这样加载的,可以字符串搜索一下。

2503_90751938的博客 3418

百度地图--圆形、矩形、多边形框选工具

以下代码可以贴进官方在线demo直接测试 百度地图官方在线测试:https://lbsyun.baidu.com/jsdemo.htm#c2_2 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user

2803

生成对抗网络(GAN、DCGAN、ACGAN)-----学习笔记

生成对抗网络学习笔记 生成对抗网络有两个关键结构:生成模型、判别模型。 生成模型:输入是一个服从正态分布的N维向量,利用这个N维向量生成一张图片。 判别模型:对于生成模型输出的图像判别它是不是真的图像。 生成模型和判别模型的博弈关系在于:生成模型的目的是生成让判别模型无法判别真伪的图像,而判别模型的目的是判断输入图像的真伪。 结合代码来看生成对抗网络中,生成器和判别器的训练过程: 判别模型的训...

weixin_43227526的博客 5489

百度地图框选标注坐标返回标注信息

①、框选地图中设置好的标注 ②、返回框选标注的信息,显示在弹窗中。 ③、点击弹窗中的数据列表,地图对应的标注显示具体信息 步骤: 1、申请百度地图秘钥; 2、修改index.html中js的地图key; 3、引入百度地图的画图js; 4、该demo核心为框选地图标注返回选中的标注信息,按业务扩充修改,代码备注详细。 效果如下: 核心代码: HTML: </div> <!--右上角控制按钮 GO--> <div class="open" id="open"></d

weixin_39921970的博客 3931

RK3308B开发板WiFi+蓝牙一体模组RTL8821CS驱动移植保姆级教程(含DTS配置与避坑点)

本文提供RK3308B开发板RTL8821CS WiFi+蓝牙模组驱动移植的完整教程,涵盖SDK环境配置、DTS设备树设置、内核编译优化及功能验证全流程。重点解析引脚复用冲突、电源管理等关键配置,并给出常见错误解决方案,帮助开发者快速实现双模通信功能。

weixin_42531163的博客 398

计算机网络之NAT的解释与实验配置

NAT 静态NAT 动态NAT easy_ip NAT服务器映射

爱学习的JackYang的博客 1917

百度地图自定义矩形选择框

百度地图中,当我们需要统计一定范围内符合需求的目标的数量时。要用到自定义画图工具:drawingMannager 使用前,请先引入 &lt;script type="text/javascript" src="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.js"&gt;&lt;/scr...

zxj201611的博客 3601

高分六号WFV预处理详细步骤(辐射校正、大气校正、几何校正)

高分六号WFV传感器获得的影像的预处理分为两个步骤:辐射校正和大气校正,辐射校正为了消除传感器的自身误差,大气校正为了消除大气的折射误差。 一、辐射校正 按照红框中信息进行更改。 辐射校正前地物光谱反射率: 校正后的地物光谱曲线的变化: 二、大气校正 ENVI中大气校正一般采用Flaash模型,但是这个模型需要设置许多的参数十分的麻烦,所以采用ENVI商店(app store,这个也需要下载的)里的Flaash Easy To Use 这个插件,可以快速地进行大气校正。 大气校正后的地物反射率 这

qq_41828818的博客 1万+

百度地图聚合点new BMapLib.MarkerClusterer()用法及map.clearOverlays()不能清除聚合点问题

时候是我们需要在地图上添加覆盖物,但如果数据太多可能出现这种情况 这种看起来总觉得不舒服(密集恐惧症) 所以可以换成用聚合点 一下子清爽了很多,聚合点放大后还是可以显示普通点。 用法代码 &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8" /&gt; &lt;title&gt...

lianzhang861的博客 2万+

ARMv8/ARMv9的TLB深度学习

千万不要人云亦云。一个TLB entry里有很多很多东西的,有100多个比特位呢,并不是仅仅只有VA/PA/nG/VMID/ASID等。.👉👉👉 个人博客笔记导读目录(全部) 👈👈👈。

baron-周贺贺-代码改变世界ctw 1569

大模型角色提示词写得再严密,也能被绕过?我用攻击者思维把自己吓了一跳!

很多人以为提示词是“只要写清楚了,模型就能理解”,但实际上——模型并不具备严格的规则意识,它只是在预测下一句话。所以我们必须从“攻防”角度出发,设计更强的防护机制。我这次就是亲身踩坑,用红队思维模拟攻击,才意识到原来提示词注入这么容易中招。你如果也在做 AI 应用、角色系统、提示词驱动的功能,建议你也用类似方式测试一下,不然被绕了都不知道。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1026

百度api实现框选,显示框选区域内的数据,并且点击数据点显示详细信息

下面我贴上所有源码,分享给大家,后台数据随便大家如何获取 1.打开地图,右上角是绘制多边形的工具条。引用DrawingManager_min.js和DrawingManager_min.css即可 2.选择框选类型。框选区域,判断点是否在多边形中,大家可以参考百度提供的这个js(http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils

tengqingyong的博客 5975

Docker 环境 Playwright MCP 部署全流程指南

Docker部署Playwright MCP全流程指南 本文详细介绍了使用Docker容器化部署Playwright MCP的完整流程,涵盖镜像拉取、容器启动、配置优化和问题排查。主要内容包括: 核心部署步骤:通过官方镜像快速搭建环境,支持自定义端口和数据持久化 关键配置要点:详解网络设置、持久化目录挂载和环境变量配置 服务验证方法:通过日志检查和服务连通性测试确保部署成功 客户端集成:提供VS Code等IDE的配置示例 常见问题解决:针对浏览器启动超时、跨域限制等问题给出解决方案 实战案例:演示自动化爬

勤奋的码农 1473

百度地图 marker 闪烁_百度地图使用总结

-----------项目中使用百度地图的总结分享-----------初始化与配置// 初始化 var mapO = new BMap.Map("mapContainerId"); // 开启/关闭鼠标滚轮缩放 mapO.enableScrollWheelZoom(true); // 设置地图允许的最小级级别 mapO.setMinZoom(5); // 设置地图允许的最大级别 mapO.se...

weixin_39613089的博客 2942

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

vue--百度地图之离线地图--大量标注点造成卡顿问题--海量点聚合性能优化

一、需求 1、在线地图转离线地图:具体步骤可参照我上一篇博客 2、离线地图上标注很多marker标记,拖动时造成卡顿,需要优化 二、地图的引入、聚合点的使用 1、如图:引入百度地图和其他相关插件(按需引入,这些百度地图官网上都可以下载到) <!-- 离线地图 --> //引入百度地图 <script type="text/javascript" src="./bmap-offline/map3.0_init.js"></script> <script

4926

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

使用geohash实现经纬度范围内搜索

需求: 根据用户当前坐标,在地图上标注附近的门店。 方案一、使用百度云存储服务 1. 导入所有门店的坐标数据至百度云存储 2. 使用百度地图接口获取附近的坐标点 方案二、本地实现范围搜索 1. 收集门店坐标 2. 本地实现范围搜索 与项目经理确认后,由于百度云存储方案具有接口及数据的约束,因此采用方案二。 具体流程如下: 1. 采集门

我愤青,我骄傲。 3421

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

百度离线地图示例之五:点聚合

前言介绍: 主要是基于v3.0的API版本进行的离线,纯内网可操作,基本上实现了现有90%以上的功能点,能兼容jpg和png格式的瓦片图层,实现了原生和基于Vue两个版本,实现的功能点概要如下: 地图示例: 地图展示 同时加载两个地图 设置地图最大及最 小级别移动地图 缩放地图 拖拽地图 设置地图显示范围 获取地图显示范围 测距 地图控件: 工具条、比例尺控件 地图类型 缩略图控件 添加版权控件 添加自定义控件 覆盖物示例: 添加/删除覆盖物 折线上添加方向箭头 添加动画标注点 设置点的新图标 设

xiaoge_586的博客 2486

vue前端实现百度地图框选和选点显示

实现百度地图框选陕西区域和选点显示

qq_44004255的博客 340

百度地图画圆、矩形、多边形,并判断点是否在矩形或圆内部

本文是按照“定位——&gt;画圆或画矩形——&gt;判断点是否在圆内或矩形内部”这样的思路编排的。一,首先是定位。先定义6个百度坐标点,然后在坐标点上创建对应的marker,再通过map.addOverlay(marker)方法将6个marker定位在百度地图中,并利用marker.disableMassClear()方法设置marker为不可被清除,最后为marker添加鼠标滑过事件。具体如下:...

sning999 1万+

vue-百度地图自定义主题框选区域设置模态框

效果图: 1.首先,引入vue-baidu-map,对应的命令是 npm install vue-baidu-map --save 2.然后,在main.js中完成全局注册 import BaiduMap from 'vue-baidu-map' Vue.use(BaiduMap, { // ak 是在百度地图开发者平台申请的密钥 ak: '您的ak密钥' }) 3.页面中应用 template <div class="BMapbubblecontent" id="more" v-

m0_47480813的博客 869

地图框选区域

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=dy4yR98GrKl9VvyRsp6r8CUL3pBS6ffU"></script

yzp0112的博客 3634

百度地图修改点汇聚样式(JS地图)

javascript版百度地图进行点汇聚并更改样式,引入百度开源类库TextIconOverlay_min.js和MarkerClusterer_min.js,使用BMapLib.MarkerClusterer(map, options)进行点聚合: BMapLib.MarkerClusterer(map, options) MarkerClusterer 参数:{M

牟云飞的博客 5190

百度地图开发中遇到的问题

问题1:含有label的marker聚合时label消失问题问题描述:使用百度地图API实现marker聚合最简单的方式就是编写如下的代码:<script type="text/javascript" src="http://api.map.baidu.com/library/TextIconOverlay/1.2/src/TextIconOverlay.js"></script> <script

做一个开心的全栈工程师 5155

百度地图点聚合

经测试,如果加载点数超多,页面打开缓慢。下载到本地会提高速度。

weixin_37593409的博客 891

百度地图 聚合点 简单用法

<script type="text/javascript" src="http://api.map.baidu.com/library/TextIconOverlay/1.2/src/TextIconOverlay_min.js"></script> <script type="text/javascript" src="http://api.map.baidu.com/library/MarkerClusterer/1.2/src/MarkerClusterer_min..

qq_42489210的博客 447
上一篇: React源码解析
下一篇: Android:最全面的Webview详解
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值