天下之事,必先处之难,而后易之。

Redis geojson实现地图聚合效果

目录

地图聚合API

Java  Redis示例


 地图聚合API

https://openlayers.org/en/latest/examples/cluster.html

通过地图平移缩放事件控制地图四至范围内地图刷新和加载详细点控制。最终实现效果如下:

Java  Redis示例

添加geojson数据:

/**
	 * 更新GEOHASH值
	 * @param dwCode
	 * @param coordinate
	 * @param memberName "HLYID-score"
	 */
	public static void positonToGeohash(String dwCode,String hlyId,GeoCoordinate coordinate,String memberName){
		String storeKey=XHT_ZZJG_GEOPOSITION+dwCode;
		String expireKey=XHT_ZZJG_GEOEXPIRE+dwCode;
		RedisUtil.geoadd(storeKey, coordinate, memberName);
		// 设置超时过期
		RedisUtil.zadd(expireKey,System.currentTimeMillis(),memberName);
		Set<String> expiredKeys = RedisUtil.zrangeByScore(expireKey, 0, System.currentTimeMillis()-30*60*1000);
		
		if(expiredKeys!=null && expiredKeys.size()>0) {
			//删除超时的数据
			RedisUtil.zrem(storeKey,expiredKeys.toArray(new String[expiredKeys.size()]));
			RedisUtil.zrem(expireKey,expiredKeys.toArray(new String[expiredKeys.size()]));
			//zzjgList.toArray(new String[zzjgList.size()])
			//TODO : 两个集合中的size不一致时,需要按照expiredKeys中为标准删除storeKey中多余的数据
			
		}
		
		RedisUtil.expire(expireKey, Constants.MOBILE_TOKEN_KEY_HALF_HOUR);//Constants.MOBILE_TOKEN_KEY_HALF_HOUR
		RedisUtil.expire(storeKey, Constants.MOBILE_TOKEN_KEY_HALF_HOUR);
	}	

完整代码请下载连接(没有的自行补全):https://download.csdn.net/download/boonya/12048388

缺少的工具类请参考:Redis连接池及单节点工具与多Redis节点管理工具

posted @ 2024-09-21 11:14  boonya  阅读(47)  评论(0)    收藏  举报  来源
我有佳人隔窗而居,今有伊人明月之畔。
轻歌柔情冰壶之浣,涓涓清流梦入云端。
美人如娇温雅悠婉,目遇赏阅适而自欣。
百草层叠疏而有致,此情此思怀彼佳人。
念所思之唯心叩之,踽踽彳亍寤寐思之。
行云如风逝而复归,佳人一去莫知可回?
深闺冷瘦独自徘徊,处处明灯影还如只。
推窗见月疑是归人,阑珊灯火托手思忖。
庐居闲客而好品茗,斟茶徐徐漫漫生烟。

我有佳人在水之畔,瓮载渔舟浣纱归还。
明月相照月色还低,浅近芦苇深深如钿。
庐山秋月如美人衣,画堂春阁香气靡靡。
秋意幽笃残粉摇曳,轻轻如诉画中蝴蝶。
泾水潺潺取尔浇园,暮色黄昏如沐佳人。
青丝撩弄长裙翩翩,彩蝶飞舞执子手腕。
香带丝缕缓缓在肩,柔美体肤寸寸爱怜。
如水之殇美玉成欢,我有佳人清新如兰。
伊人在水我在一边,远远相望不可亵玩。