天地图监听圆是否改变

天地图4.0截至2025年3月24日还不支持编辑监听改变,但是不妨碍我们使用技术手段进行实现,达到监听半径和圆点是否改变的方法;

效果图
核心方法
typescript 复制代码
// 定义圆默认半径
var preRadius = 5000;
// 定义圆默认中心点
var circleDefCenter = {lng: 116.40093, lat: 39.90313}
// 定时器放置重复触发
var circleEditChangeTime = null;
// 地图绑定事件
map.addEventListener('touchend', function(e) {
    circleEditChange();
});

function circleEditChange() {
    // 不在编辑状态就不处理
	if (!circle.isEditable()) {return;}
    if (circleEditChangeTime) {
        clearTimeout(circleEditChangeTime)
        circleEditChangeTime = null;
    }
    circleEditChangeTime = setTimeout(function() {
        /*  禁用: 业务不让改变中心点
  			【天地图Bug】改变中心点后, 重置到默认编辑手柄不会归位;
        */
        circle.disableEdit();
        var curCenter = circle.getCenter();
        var curRadius = circle.getRadius();
        // 中心点改变了
        if (curCenter.lng !== circleDefCenter.lng || curCenter.lat !== circleDefCenter.lat) {
            circle.setCenter(new T.LngLat(116.40093, 39.90313));
            console.log('中心点改变了');
        }
        // 表示半径改变了
        if (curRadius !== preRadius) {
            preRadius = curRadius;
            console.log('半径改变了', curRadius);
        }
        // 启用编辑
        circle.enableEdit();
    }, 200);
};
使用
typescript 复制代码
circle = new T.Circle(new T.LngLat(116.40093, 39.90313), 5000,{color:"blue",weight:5,opacity:0.5,fillColor:"#FFFFFF",fillOpacity:0.5,lineStyle:"solid"});
map.addEventListener('touchend', function(e) {
	circleEditChange();
});
其它方法
typescript 复制代码
// 判断经纬度是否在圆形范围内 is: boolean;
var is = circle.getBounds().contains(new T.LngLat(116.40093, 39.90313));
相关推荐
IT_陈寒1 分钟前
Python的finally居然不等同于Go的defer,差点坑惨我
前端·人工智能·后端
恋猫de小郭3 分钟前
给 AI 的 Agent 实现指南,可控 Agent 的关键
前端·人工智能·ai编程
米码收割机7 分钟前
【Python】Flask+SQLite_web 宠物领养系统 (源码+文档)【独一无二】
前端·python·flask
寒水馨22 分钟前
macOS下载、安装 Tailwind CSS-v4.3.3(附安装包tailwindcss-macos-arm64)
前端·css·macos·tailwind css·utility-first·css 框架·实用优先
shawxlee36 分钟前
vue3+axios挑战最简洁实用的配置封装+接口调用:请求拦截器、响应拦截器、通用请求方法(单个请求/并发请求/下载文件)、统一接口管理
前端·经验分享·vue·接口·axios·api
yuhaiqiang1 小时前
上线一个人静态网站需要多少钱,难不难?
前端·后端·程序员
宸津-代码粉碎机1 小时前
Jar热部署进阶实战|修复原生方案OOM与类冲突问题,生产级无BUG优化方案
java·大数据·服务器·开发语言·前端·人工智能·python
To_OC9 小时前
写了三遍 Todo List,我终于搞懂了 React 父子组件到底怎么通信
前端·javascript·react.js
勇往直前plus10 小时前
Vue3(篇一) 核心概念——响应式模板语法与组件基础
前端·javascript·vue.js
咩咩啃树皮10 小时前
第43篇:Vue3计算属性(computed)完全精讲——缓存机制、依赖计算、业务最优解
前端·vue.js·缓存