程序笔记   发布时间:2022-07-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了地图区域大数据量 marker 坐标点高效抽稀算法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

地图区域大数据量 marker 坐标点高效抽稀算法,该算法的优点:1、抽稀后点位均匀,2、计算效率高,网上找的抽稀算法需要计算坐标点之间的距离,大量的距离计算比较耗时,而该算法不需要计算坐标点的距离,3、算法逻辑简单。

代码:

地图区域大数据量 marker 坐标点高效抽稀算法

地图区域大数据量 marker 坐标点高效抽稀算法

//抽稀
if (mapZoom >= 15 && mapZoom <= 16) {
    currentMarkerMap = new HashMap();

    var getKey = function (lng, lat, len, ratio) { //如果计算结果数量较少,就调大ratio
        var a = (10000 + lng * ratio).toString().substr(0, len);
        var b = (10000 + lat * ratio).toString().substr(0, len)
        return a + "," + b;
    };

    for (var i = 0; i < forAdd.length; i++) {
        var marker = forAdd[i];

        var key;
        if (mapZoom == 15) key = getKey(marker.geometry.x, marker.geometry.y, 9, 1);
        if (mapZoom == 16) key = getKey(marker.geometry.x, marker.geometry.y, 10, 1);

        if (!currentMarkerMap.containsKey(key)) {
            currentMarkerMap.put(key, marker);
        }
    }
}
View Code

说明:代码中 forAdd 变量是抽稀前的坐标点集合,currentMarkerMap 变量是HashMap集合(HashMap是自己实现的JS类),定义代码如下:

地图区域大数据量 marker 坐标点高效抽稀算法

地图区域大数据量 marker 坐标点高效抽稀算法

var forClear = [];
var currentMarkerMap = new HashMap();
View Code

效果图:

地图区域大数据量 marker 坐标点高效抽稀算法

 

大佬总结

以上是大佬教程为你收集整理的地图区域大数据量 marker 坐标点高效抽稀算法全部内容,希望文章能够帮你解决地图区域大数据量 marker 坐标点高效抽稀算法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: