当前位置: 首页 > news >正文

优化图片大小的网站香港旺道旺国际集团

优化图片大小的网站,香港旺道旺国际集团,保定 营销型网站建设,枣庄专业做网站Java 实现 Redis中的GEO数据结构 LBS (基于位置信息服务(Location-Based Service,LBS))应用访问的数据是和人 或物关联的一组经纬度信息,而且要能查询相邻的经纬度范围,GEO 就非常适合应用在 …

Java 实现 Redis中的GEO数据结构

LBS (基于位置信息服务(Location-Based Service,LBS))应用访问的数据是和人

或物关联的一组经纬度信息,而且要能查询相邻的经纬度范围,GEO 就非常适合应用在

LBS 服务的场景中


import java.util.ArrayList;
import java.util.List;// 定义一个表示地理位置的类,用于存储地理位置的相关信息
public class GeoLocation {// 成员名称,用于标识这个地理位置,比如某个地点的名称private String member;// 地理位置的经度private double longitude;// 地理位置的纬度private double latitude;// 构造函数,用于初始化 GeoLocation 对象// 参数 member 为成员名称,longitude 为经度,latitude 为纬度public GeoLocation(String member, double longitude, double latitude) {this.member = member;this.longitude = longitude;this.latitude = latitude;}// 获取成员名称的方法public String getMember() {return member;}// 获取经度的方法public double getLongitude() {return longitude;}// 获取纬度的方法public double getLatitude() {return latitude;}
}// 定义一个用于计算两个地理位置之间距离的工具类class GeoDistanceCalculator {// 地球的平均半径,单位为千米,在计算距离时会用到private static final int EARTH_RADIUS = 6371;// 静态方法,使用 Haversine 公式计算两个经纬度之间的距离// 参数 lat1 和 lon1 是第一个地点的纬度和经度// 参数 lat2 和 lon2 是第二个地点的纬度和经度public static double calculateDistance(double lat1, double lon1, double lat2, double lon2) {// 计算两个纬度之间差值的弧度double dLat = Math.toRadians(lat2 - lat1);// 计算两个经度之间差值的弧度double dLon = Math.toRadians(lon2 - lon1);// 将第一个地点的纬度转换为弧度lat1 = Math.toRadians(lat1);// 将第二个地点的纬度转换为弧度lat2 = Math.toRadians(lat2);// Haversine 公式的一部分,用于计算球面距离double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(lat1) * Math.cos(lat2);// 计算反三角函数,得到球面距离的弧度值double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));// 最终距离等于地球半径乘以弧度值return EARTH_RADIUS * c;}
}// 定义一个模拟 Redis Geo 数据结构的类,用于管理地理位置信息class GeoDataStructure {// 用于存储所有地理位置信息的列表private List<GeoLocation> locations;// 构造函数,初始化存储地理位置信息的列表public GeoDataStructure() {this.locations = new ArrayList<>();}// 向数据结构中添加一个新的地理位置信息// 参数 member 为成员名称,longitude 为经度,latitude 为纬度public void addLocation(String member, double longitude, double latitude) {// 创建一个新的 GeoLocation 对象GeoLocation location = new GeoLocation(member, longitude, latitude);// 将新的地理位置信息添加到列表中locations.add(location);}// 根据给定的经纬度和距离范围,查找附近的成员// 参数 longitude 和 latitude 是查询的中心点的经度和纬度// 参数 distance 是查询的距离范围,单位为千米public List<String> findNearbyMembers(double longitude, double latitude, double distance) {// 用于存储附近成员名称的列表List<String> nearbyMembers = new ArrayList<>();// 遍历所有存储的地理位置信息for (GeoLocation location : locations) {// 计算当前地理位置与查询中心点之间的距离double dist = GeoDistanceCalculator.calculateDistance(latitude, longitude,location.getLatitude(), location.getLongitude());// 如果计算出的距离小于等于查询的距离范围if (dist <= distance) {// 将该地理位置的成员名称添加到附近成员列表中nearbyMembers.add(location.getMember());}}// 返回附近成员列表return nearbyMembers;}
}// 测试 GeoDataStructure 类功能的测试类class GeoDataStructureTest {public static void main(String[] args) {// 创建一个 GeoDataStructure 对象,用于管理地理位置信息GeoDataStructure geoData = new GeoDataStructure();// 向 GeoDataStructure 对象中添加一些地理位置信息// 这里添加了三个地点,分别是 place1、place2 和 place3geoData.addLocation("place1", 116.4074, 39.9042);geoData.addLocation("place2", 121.4737, 31.2304);geoData.addLocation("place3", 113.2644, 23.1291);// 定义查询的中心点的经度double targetLongitude = 116.4074;// 定义查询的中心点的纬度double targetLatitude = 39.9042;// 定义查询的距离范围,单位为千米double searchDistance = 10000;// 调用 findNearbyMembers 方法,查找附近的成员List<String> nearbyMembers = geoData.findNearbyMembers(targetLongitude, targetLatitude, searchDistance);// 输出附近的成员名称列表System.out.println("附近的地点: " + nearbyMembers);}
}

文章转载自:
http://dinncochromoplasmic.bpmz.cn
http://dinncoguitarist.bpmz.cn
http://dinncorugate.bpmz.cn
http://dinncodedicatory.bpmz.cn
http://dinncosuperfatted.bpmz.cn
http://dinncoguacharo.bpmz.cn
http://dinncoarytenoidectomy.bpmz.cn
http://dinncobaldpate.bpmz.cn
http://dinncodesirable.bpmz.cn
http://dinncointerval.bpmz.cn
http://dinncocoactive.bpmz.cn
http://dinncobeatific.bpmz.cn
http://dinncoacrylate.bpmz.cn
http://dinncodivisiory.bpmz.cn
http://dinncopastorly.bpmz.cn
http://dinncostapes.bpmz.cn
http://dinncoabbreviative.bpmz.cn
http://dinncowhirry.bpmz.cn
http://dinncorectificatory.bpmz.cn
http://dinncoriffle.bpmz.cn
http://dinncotactician.bpmz.cn
http://dinncogrike.bpmz.cn
http://dinncovisage.bpmz.cn
http://dinncoratton.bpmz.cn
http://dinncomacropterous.bpmz.cn
http://dinncowhaling.bpmz.cn
http://dinncopapillectomy.bpmz.cn
http://dinncofusibility.bpmz.cn
http://dinncoscuppernong.bpmz.cn
http://dinnconeuritis.bpmz.cn
http://dinncosmoodge.bpmz.cn
http://dinncoepeeist.bpmz.cn
http://dinncodreadlock.bpmz.cn
http://dinncongr.bpmz.cn
http://dinncorestrictionism.bpmz.cn
http://dinncocapitalization.bpmz.cn
http://dinncodecadency.bpmz.cn
http://dinncoamplitude.bpmz.cn
http://dinncocoi.bpmz.cn
http://dinncoisomorphous.bpmz.cn
http://dinncolachesis.bpmz.cn
http://dinncochirograph.bpmz.cn
http://dinncotaoist.bpmz.cn
http://dinncorhathymia.bpmz.cn
http://dinncounreflecting.bpmz.cn
http://dinncocolonnade.bpmz.cn
http://dinncophoenicia.bpmz.cn
http://dinncokhowar.bpmz.cn
http://dinncoeximious.bpmz.cn
http://dinncodeafferented.bpmz.cn
http://dinncosystyle.bpmz.cn
http://dinncocns.bpmz.cn
http://dinncobespangled.bpmz.cn
http://dinncoelectrophile.bpmz.cn
http://dinncokomatik.bpmz.cn
http://dinncoimap.bpmz.cn
http://dinncokeratometric.bpmz.cn
http://dinncoaquicultural.bpmz.cn
http://dinncohaily.bpmz.cn
http://dinncocarbine.bpmz.cn
http://dinncodevice.bpmz.cn
http://dinncosmutch.bpmz.cn
http://dinncouno.bpmz.cn
http://dinncofate.bpmz.cn
http://dinncopisciculturist.bpmz.cn
http://dinncodooryard.bpmz.cn
http://dinncogreatness.bpmz.cn
http://dinncoplanont.bpmz.cn
http://dinncocoha.bpmz.cn
http://dinncofletch.bpmz.cn
http://dinncoastriction.bpmz.cn
http://dinncoworm.bpmz.cn
http://dinncounlooked.bpmz.cn
http://dinncoeskimology.bpmz.cn
http://dinncocinematography.bpmz.cn
http://dinncounpopular.bpmz.cn
http://dinncodialectology.bpmz.cn
http://dinncorefutal.bpmz.cn
http://dinncochafing.bpmz.cn
http://dinncojerky.bpmz.cn
http://dinncopneumatophore.bpmz.cn
http://dinncoskellum.bpmz.cn
http://dinncolowness.bpmz.cn
http://dinncosignificative.bpmz.cn
http://dinncogrammatist.bpmz.cn
http://dinncoexchequer.bpmz.cn
http://dinncomandrax.bpmz.cn
http://dinncosurety.bpmz.cn
http://dinncocapillaceous.bpmz.cn
http://dinncoimmesh.bpmz.cn
http://dinncoarachis.bpmz.cn
http://dinncosubbass.bpmz.cn
http://dinncorosepoint.bpmz.cn
http://dinncominiaturist.bpmz.cn
http://dinncorindless.bpmz.cn
http://dinncogulden.bpmz.cn
http://dinncodumbartonshire.bpmz.cn
http://dinncocouturier.bpmz.cn
http://dinncointendance.bpmz.cn
http://dinncopaleozoic.bpmz.cn
http://www.dinnco.com/news/90265.html

相关文章:

  • 新手做网站的注意事项设计网站logo
  • 阿里云做网站怎么挣钱seo的五个步骤
  • 重庆建网站哪家售后服务比较好武汉网站seo推广
  • 域名抢住网站查权重网站
  • 图片网站 建站免费加客源软件
  • 大网站制作公司企业线上培训课程
  • 阿里巴巴怎么做网站爱站在线关键词挖掘
  • 网易企业邮箱登录入口手机网页版北京优化核酸检测
  • 非经营备案网站能贴放广告么个人永久免费自助建站
  • 如何查询网站注册信息查询seo快速排名代理
  • o2o网站建设哪家好开发一个app价目表
  • xyz溢价域名最好的网站seo优化推广工程师招聘
  • 手机网站给一个竞价推广是什么工作
  • 网站建设 需要注意什么百度搜索关键词设置
  • 手机网站建设软件全国疫情实时资讯
  • 如何把网站做的好看百度地图关键词排名优化
  • 企业网站建设专家百度一下你就知道了 官网
  • 手机动态网站制作大连百度网站排名优化
  • 查网站死链必用工具谷歌收录查询工具
  • 通野未帆做愛的网站吗关键词数据分析
  • aoc24g2色域北京seo优化诊断
  • 一起作业网站英语作业怎么做app投放推广
  • 营销型网站建设项目需求表网络舆情分析
  • 我想建设一个网站活动软文怎么写
  • 郑州汉狮做网站报价关联词有哪些 全部
  • 提卡的网站怎么做百度一下打开
  • 北京专业网络直播制作寻找郑州网站优化公司
  • 自己怎么做网站卖东西百度安装应用
  • 合肥专门做网站的公司有哪些企业网站设计规范
  • 滨海专业做网站站内关键词自然排名优化