高德地图开发智慧社区网格化数据格式产生的无法单击事件的解决方案

简介: 高德地图开发智慧社区网格化数据格式产生的无法单击事件的解决方案


在使用高德地图卫星图,由于默认使用了 v1.4.15版本,导致3D罗盘无法靠左,切换成v2.0版的,又导致网格鼠标高亮和单击事件失效。经过和官方版本的多次比较,经验如下:


高德地图版本

  • v1.4.15
<script src="https://webapi.amap.com/maps?v=1.4.15&key=ca11d9894383ee611ed5c6696**"></script>
  • v2.0
<script src="https://webapi.amap.com/maps?v=2.0&key=ca11d9894383ee611ed5c6696e1df**"></script>
    //ajax对接数据库接口标准数据;
    var data = [
        {
            name: "网格A",
            lnglat: "121.546266,29.80975;121.54543,29.806845;121.548713,29.806752;121.549957,29.809508"
        },
        {
            name: "网格B",
            lnglat: "121.550105,29.809447;121.550082,29.809297;121.549287,29.806895;121.549081,29.806638;121.552093,29.806277;121.552823,29.809133"
        },
        {
            name: "网格C",
            lnglat: "121.547453,29.80072;121.547919,29.80024;121.552966,29.799516;121.554676,29.805661;121.549011,29.806204"
        },
        {
            name: "网格D",
            lnglat: "121.553224,29.799561;121.554952,29.805673;121.559322,29.804624;121.55722,29.799169;121.556983,29.798981;121.556405,29.798981;121.555282,29.799298"
        }
    ]


网格区域划分

    //网格区域划分;
    for (var i = 0; i < data.length; i++) {
        var p = data[i].lnglat.split(";")
        var path = [];
        for (var n = 0; n < p.length; n++) {
            path.push([Number(p[n].split(",")[0]), Number(p[n].split(",")[1])])
        }
        //多边形覆盖物加载;
        getPolygon(path, i);
    }


划分多边形

  //划分多边形;
    function getPolygon(path, m) {
        var polygon = new AMap.Polygon({
            path: path,
            strokeColor: colors[m],
            strokeWeight: 2,
            strokeStyle: 'dashed',
            strokeOpacity: 1,
            fillOpacity: 0.5,
            cursor: 'pointer',
            fillColor: colors[m],
            zIndex: 9999,
        })
        polygon.on('mouseover', () => {
            polygon.setOptions({
                fillOpacity: 0.7,
            })
        })
        polygon.on('mouseout', () => {
            polygon.setOptions({
                fillOpacity: 0.5,
                fillColor: colors[m]
            })
        })
        polygon.on('click', () => {
            console.log(data[m].name)
        })
        map.add(polygon)
        // 缩放地图到合适的视野级别
        //map.setFitView(polygon)
    }


关键点

[Number(p[n].split(",")[0]), Number(p[n].split(",")[1])]

必须将经纬度坐标转化为数字类型,如果是文本类型,则鼠标事件失效。


@lockdata.cn

相关文章
|
JavaScript 定位技术 API
百度离线地图API v3.0开发解决方案
百度离线地图API v3.0开发解决方案
777 0
|
存储 缓存 Java
mPaaS 3.0 多媒体组件发布 | 支付宝百亿级图片组件 xMedia 锤炼之路 (图片缓存篇)
历经三年的风雨洗礼沉淀,xMedia 多媒体图片加载组件已经成为支付宝重要的驱动力,承载了绝大部分业务,与此同时,我们也通过移动开发平台 mPaaS 对外输出,向外界企业提供稳定的图片加载技术。
2392 0
|
2月前
|
数据可视化 搜索推荐
重磅更新-UniApp自定义字体可视化设计
重磅更新-UniApp自定义字体可视化设计
55 0
|
7月前
|
Web App开发 存储 自然语言处理
推荐一款价值几万元的免费开源GPTs导航!还可自定义数据源做成通用导航站!
推荐一款价值几万元的免费开源GPTs导航!还可自定义数据源做成通用导航站!
139 0
|
7月前
|
搜索推荐 小程序 定位技术
【社区每周】AMPE新增车机卡片联动功能;支持个性化场景推荐(2022年6月第四期)
【社区每周】AMPE新增车机卡片联动功能;支持个性化场景推荐(2022年6月第四期)
108 0
|
JSON 数据可视化 定位技术
漏刻有时数据可视化Echarts组件开发(26):全国地图三级热力图下钻和对接api自动调用数据开发实录
漏刻有时数据可视化Echarts组件开发(26):全国地图三级热力图下钻和对接api自动调用数据开发实录
230 0
漏刻有时数据可视化Echarts组件开发(26):全国地图三级热力图下钻和对接api自动调用数据开发实录
|
JavaScript 前端开发 数据库
Unity3d(webGL)构建数字孪生小案例(包含完整的数据交互体系)附赠完整代码
Unity3d(webGL)构建数字孪生小案例(包含完整的数据交互体系)附赠完整代码,请关注公众号:拼搏的小浣熊,获取简化版的代码!
|
Web App开发 前端开发 JavaScript
《如何制作一个媲美原生体验的选择器组件-卡晨》演讲视频+文字版
《如何制作一个媲美原生体验的选择器组件-卡晨》演讲视频+文字版
189 0
|
存储 缓存 安全
移动端的「基金地图」是怎么做的?
移动端的「基金地图」是怎么做的?
125 0
|
JSON 移动开发 JavaScript
支付宝动态化卡片技术研发工具 ACT 的演进之路 | Cube 卡片技术栈
支付宝动态化卡片技术研发工具 ACT 的演进之路 | Cube 卡片技术栈
260 0