地图区域 marker 坐标点高效抽稀算法
2021/9/10 17:08:31
本文主要是介绍地图区域 marker 坐标点高效抽稀算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
地图区域大数据量 marker 坐标点高效抽稀算法,该算法的优点:1、抽稀后点位均匀,2、计算效率高,网上找的抽稀算法需要计算坐标点之间的距离,大量的距离计算比较耗时,而该算法不需要计算坐标点的距离,3、算法逻辑简单。
代码:
//抽稀 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类),定义代码如下:
var forClear = []; var currentMarkerMap = new HashMap();View Code
效果图:
这篇关于地图区域 marker 坐标点高效抽稀算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)