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

基于Java在高德地图面查询检索中使用WGS84坐标的一种方法-以某商场的POI数据检索为例

前言

        随着移动互联网的飞速发展,基于位置的服务(LBS)需求日益增长,越来越多的应用需要从地图中检索特定区域内的地理信息,例如商业场所、公共服务设施等。商场作为城市商业活动的重要载体,其周边的地理信息对于消费者、商家以及城市规划者都具有重要的参考价值。例如,消费者可以通过检索商场周边的交通设施、餐饮场所等信息,来安排购物和休闲计划;商家则可以分析商场周边的人流量、竞争对手分布等信息,进行市场定位和营销策略的制定;城市规划者也可以借助这些数据,优化城市商业布局和交通规划。

        在高德地图中,POI(Point of Interest,兴趣点)数据是一种重要的地理信息资源,它包含了各种类型的地理实体,如商场、酒店、餐厅、学校等。对于商场的 POI 数据检索,在高德地图中,默认采用的是中国标准的火星坐标系(GCJ-02)。WGS84 坐标系统是一种全球通用的地理坐标系统,具有高精度和广泛的兼容性,能够准确地定位地球表面的任意一点,同时在很多的应用中,空间参考使用的WGS84的坐标系。通过将商场及其周边区域的地理信息可以实现对特定区域内的 POI 数据的高效查询和精准检索。但是需要注意的是,在高德的检索API中,其传入的检索面数据的坐标是高德的。因此如果您的需求是传入WGS84的坐标,那么就需要进行坐标转换后才能作为查询参数传入。

        本文将以某商场的 POI 数据检索为例,深入探讨这一方法的实现过程和应用效果,旨在为相关领域的研究和实践提供参考和借鉴。除了讲解如何实现不同的空间面转换查询,还讲解如何实现对高德地图进行穷举查询。

一、面数据检索简介

        本节将重点对高德地图中的的面检索API进行一个简单的介绍。分别从服务地址、请求参数、响应参数三个方面来进行讲解。

1、服务地址

        多边形区域搜索 API 服务地址

URL

请求方式

https://restapi.amap.com/v5/place/polygon?parameters

GET

        parameters 代表的参数包括必填参数和可选参数。所有参数均使用和号字符(&)进行分隔。下面的列表枚举了这些参数及其使用规则。

2、请求参数

参数名

含义

规则说明

是否必须

缺省值

key

高德Key

用户在高德地图官网 申请 Web 服务 API 类型 Key

必填

polygon

多边形区域

多个坐标对集合,坐标对用"|"分割。多边形为矩形时,可传入左上右下两顶点坐标对;其他情况下首尾坐标对需相同。

必填

keywords

地点关键字

需要被检索的地点文本信息。

只支持一个关键字 ,文本总长度不可超过80字符

可选

types

指定地点类型

地点文本搜索接口支持按照设定的 POI 类型限定地点搜索结果;地点类型与 poi typecode 是同类内容,可以传入多个 poi typecode,相互之间用“|”分隔,内容可以参考 POI 分类码表;地点(POI)列表的排序会按照高德搜索能力进行综合权重排序;

可选

120000(商务住宅)

150000(交通设施服务)

show_fields

返回结果控制

show_fields 用来筛选 response 结果中可选字段。show_fields 的使用需要遵循如下规则:

1、具体可指定返回的字段类请见下方返回结果说明中的“show_fields”内字段类型;

2、多个字段间采用“,”进行分割;

3、show_fields 未设置时,只返回基础信息类内字段。

可选

page_size

当前分页展示的数据条数

page_size 的取值1-25

可选

page_size 默认为10

page_num

请求第几分页

请求第几分页

可选

page_num 默认为1

sig

数字签名

请参考数字签名获取和使用方法

可选

output

返回结果格式类型

默认格式为 json,目前只支持 json 格式;

可选

json

callback

回调函数

callback 值是用户定义的函数名称,此参数只在 output 参数设置为 JSON 时有效。

可选

3、服务示例

https://restapi.amap.com/v5/place/polygon?polygon=116.460988,40.006919|116.48231,40.007381|116.47516,39.99713|116.472596,39.985227|116.45669,39.984989|116.460988,40.006919&keywords=肯德基&types=050301&key=<用户的key>

参数

备注

必选

polygon

多边形区域,多个坐标对集合,坐标对用"|"分割。多边形为矩形时,可传入左上右下两顶点坐标对;其他情况下首尾坐标对需相同

keywords

地点关键字,需要被检索的地点文本信息
只支持一个关键字

可选

types

指定地点类型,地点文本搜索接口支持按照设定的 POI 类型限定地点搜索结果;地点类型与 poi typecode 是同类内容,可以传入多个 poi typecode,相互之间用“|”分隔,内容可以参考 POI 分类码表;地点(POI)列表的排序会按照高德搜索能力进行综合权重排序;

4、返回结果

名称

类型

说明

status

string

本次 API 访问状态,如果成功返回1,如果失败返回0。

info

string

访问状态值的说明,如果成功返回"ok",失败返回错误原因,具体见 错误码说明。

infocode

string

返回状态说明,10000代表正确,详情参阅 info 状态表

count

string

单次请求返回的实际 poi 点的个数

pois

object

返回的 poi 完整集合

poi

单个 poi 内包含的完整返回数据

name

string

poi 名称

id

string

poi 唯一标识

location

string

poi 经纬度

type

string

poi 所属类型

typecode

string

poi 分类编码

pname

string

poi 所属省份

cityname

string

poi 所属城市

adname

string

poi所属区县

address

string

poi 详细地址

pcode

string

poi 所属省份编码

adcode

string

poi 所属区域编码

citycode

string

poi 所属城市编码

注意以下字段如需返回需要通过“show_fields”进行参数类设置。

children

object

设置后返回子 POI 信息

id

string

子 poi 唯一标识

name

string

子 poi 名称

location

string

子 poi 经纬度

address

string

子 poi 详细地址

subtype

string

子 poi 所属类型

typecode

string

子 poi 分类编码

business

object

设置后返回子 POI 信息

business_area

string

poi 所属商圈

tel

string

poi 的联系电话

tag

string

poi 特色内容,目前仅在美食 poi 下返回

rating

string

poi 评分,目前仅在餐饮、酒店、景点、影院类 POI 下返回

cost

string

poi 人均消费,目前仅在餐饮、酒店、景点、影院类 POI 下返回

parking_type

string

停车场类型(地下、地面、路边),目前仅在停车场类 POI 下返回

alias

string

poi 的别名,无别名时不返回

indoor

object

设置后返回室内相关信息

indoor_map

string

是否有室内地图标志,1为有,0为没有

cpid

string

如果当前 POI 为建筑物类 POI,则 cpid 为自身 POI ID;如果当前 POI 为商铺类 POI,则 cpid 为其所在建筑物的 POI ID。

indoor_map 为0时不返回

floor

string

楼层索引,一般会用数字表示,例如8;indoor_map 为0时不返回

truefloor

string

所在楼层,一般会带有字母,例如F8;indoor_map 为0时不返回

navi

object

设置后返回导航位置相关信息

navi_poiid

string

poi 对应的导航引导点坐标。大型面状 POI 的导航引导点,一般为各类出入口,方便结合导航、路线规划等服务使用

entr_location

string

poi 的入口经纬度坐标

exit_location

string

poi 的出口经纬度坐标

gridcode

string

poi 的地理格 id

photos

object

设置后返回 poi 图片相关信息

title

string

poi 的图片介绍

url

string

poi 图片的下载链接

二、面数据检索实践

        介绍完以上的面数据检索API的具体内容之后,下面结合具体的一个商场-以步步高梅溪新天地为例,重点介绍基于梅溪新天地的面数据检索。同时对比使用GCJ-02和WGS84两个不同的坐标参考,最后介绍使用穷举的办法实现面数据的检索。

1、GCJ-02面检索

        关于如何定义API来创建高德地图的请求这里不再进行赘述。为了演示方便,我们使用的数据查询面是直接从高德地图获取的面数据。因此,我们最开始的查询面数据类型是GCJ-02的类型,为了演示WGS84,我们需要将GCJ-02的参考坐标转换为WGS84后,转换办法在下面的内容中给出。

/**
* - 根据兴趣面来搜索范围内的POI数据
* @throws InterruptedException
*/
@Test
public void searchByPolygon() throws InterruptedException {String polygon = "112.859225,28.20061;112.859172,28.20059;112.859117,28.200556;112.859058,28.200503;112.859003,28.200391;112.858739,28.199761;112.858627,28.199041;112.858673,28.198558;112.859401,28.196282;112.859435,28.196228;112.859515,28.196194;112.859594,28.196185;112.859938,28.196191;112.860163,28.196155;112.860421,28.196063;112.860709,28.195926;112.860964,28.195702;112.861103,28.195304;112.861116,28.195285;112.86115,28.195274;112.863672,28.195709;112.863705,28.195727;112.863726,28.195767;112.863732,28.195806;112.863328,28.197513;112.863249,28.19793;112.863134,28.198666;112.863084,28.198923;112.862918,28.19949;112.862647,28.200901;112.862622,28.200931;112.862583,28.200958;112.862531,28.200989;112.862463,28.201008;112.859225,28.20061";polygon = polygon.replaceAll(";", "|");String keywords = "";String types = "080000|060000";String page_size = "25";//String region = "430104";String show_fields = "children,business,indoor,navi,photos";HttpResponse<String> result = null;for(int i = 1;i<= 1;i++) {result = amapSearchService.searchByPolygon(polygon, keywords, types, page_size, String.valueOf(i), show_fields, AMAP_CLIENT_AK);System.out.println(result.getBodyResult());Thread.sleep(3000L);//休眠3000秒}}

        运行以后在IDE的控制台中可以看到有以下的输出,说明按照面检索成功,返回数据如下:

        可以看到,使用GCJ-02的面数据检索返回的数据是准确的,符合我们的查询预期。是所属商场返回的POI数据。

2、WGS84面检索

除了直接使用GCJ-02的这种查询方式,我们更多的场景下需要使用WGS84的坐标,因此我们需要使用将GCJ-02的坐标转换成WGS84,关于如何进行转换,可以查看以下的方法:

private String gcg2wgs82(String source) {StringBuffer wgs84 = new StringBuffer(source.length());String [] AOI_Str_Array = source.split(";");//处理坐标for (int i = 0; i < AOI_Str_Array.length; i++) {String loc = AOI_Str_Array[i];String [] latlon = loc.split(",");double lng = Double.parseDouble(latlon[0]);double lat = Double.parseDouble(latlon[1]);//将高德坐标转换成WGS84坐标double [] gcj284 = CoordinateTransformUtil.gcj02towgs84(lng, lat);wgs84.append(gcj284[0]).append(",").append(gcj284[1]).append("|");}return wgs84.substring(0, wgs84.length()-1);
}

下面是更详细的gcj-02坐标转wgs84点数据的转换方法,

/**
* -GCJ02(火星坐标系)转GPS84
* 
* @param lng 火星坐标系的经度
* @param lat 火星坐标系纬度
* @return WGS84坐标数组
*/
public static double[] gcj02towgs84(double lng, double lat) {if (out_of_china(lng, lat)) {return new double[] { lng, lat };}double dlat = transformlat(lng - 105.0, lat - 35.0);double dlng = transformlng(lng - 105.0, lat - 35.0);double radlat = lat / 180.0 * pi;double magic = Math.sin(radlat);magic = 1 - ee * magic * magic;double sqrtmagic = Math.sqrt(magic);dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * pi);dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * pi);double mglat = lat + dlat;double mglng = lng + dlng;return new double[] { lng * 2 - mglng, lat * 2 - mglat };
}

         与GCJ-02坐标的面检索方法一致,我们将GCJ-02坐标转为WGS84后,再进行检索实验,可以看到以下的数据。

        可以看到,在返回的检索结果数据中。跟之前返回的数据不一致了,熟悉步步高梅溪新天地的朋友应该知道,这些POI兴趣点已经不在指定的商场里面了。 由此我们得出一个结论,就是调用高德的面数据查询中,传入的面数据的坐标类型是GCJ-02,如果传入的是WGS84,其最后的计算结果肯定会偏移,因此要求大家前偏转回来或者直接使用GCJ-02的坐标参考。这个知识点也是本博客的重点。

3、穷举检索实现

        与天地图和百度地图的API不同的是,在高德的数据返回接口中,没有一个明确的总数的概念。而通常在实际业务中,我们需要将所有的数据都进行抓取,在这里我们可以使用穷举的方法来是,简单来讲就是保证调用服务最少调用一次,然后通过返回的当前数据条数有没有大于0,如果大于0,表示当前还有数据,需要继续;否则停止调用。这个翻译成代码如下所示:

HttpResponse<String> result = null;
int scrapingIndex = 1;
int dataCount = 0;
do {result = amapSearchService.searchByPolygon(gcjPolygon, keywords, types, page_size, String.valueOf(scrapingIndex), show_fields, AMAP_CLIENT_AK);System.out.println("使用高德面搜索结果");System.out.println(result.getBodyResult());if(StringUtils.isNotEmpty(result.getBodyResult())) {AmapSearchVO searchVO = gson.fromJson(result.getBodyResult(), AmapSearchVO.class);System.out.println(searchVO.getCount());dataCount = searchVO.getCount();scrapingIndex ++;}Thread.sleep(3000L);//休眠3000秒
} while (dataCount > 0);
System.out.println("一共抓取数据页数:" + scrapingIndex);

        使用的方法就是使用do...while循环,至少保证一次进入,在符合条件的情况下,循环推出。

 运行上面的程序后,可以看到数据被抓取到了,而且还分页了。数据结果如下:

        同时在Eclipse中可以看到以下输出,这句话表示当前的数据检索大约有10页,超过10页基本也就没数据了。

一共抓取数据页数:10

三、总结

        以上就是本文的主要内容,本文将以某商场的 POI 数据检索为例,深入探讨这一方法的实现过程和应用效果,旨在为相关领域的研究和实践提供参考和借鉴。除了讲解如何实现不同的空间面转换查询,还讲解如何实现对高德地图进行穷举查询。Java 作为一种广泛使用的编程语言,具有良好的跨平台性、稳定性和丰富的开发库,为实现基于高德地图的 POI 数据检索提供了强大的技术支持。利用 Java 开发的高德地图 API,可以方便地调用地图服务,实现坐标转换、地图绘制、数据查询等功能。因此,研究基于 Java 在高德地图面查询检索中使用 WGS84 坐标的方法,对于提高商场 POI 数据检索的准确性和效率具有重要的现实意义。通过本文,不仅可以学习高德地图的按面检索API,同时了解了使用不同的坐标参考系的查询结果影响,通过实例对结果进行了简单的说明。行文仓促,定有不足之处,欢迎各位朋友在评论区批评指正,不胜感激。

相关文章:

基于Java在高德地图面查询检索中使用WGS84坐标的一种方法-以某商场的POI数据检索为例

前言 随着移动互联网的飞速发展&#xff0c;基于位置的服务&#xff08;LBS&#xff09;需求日益增长&#xff0c;越来越多的应用需要从地图中检索特定区域内的地理信息&#xff0c;例如商业场所、公共服务设施等。商场作为城市商业活动的重要载体&#xff0c;其周边的地理信息…...

使用 Terraform 创建 Azure Databricks

使用 Terraform 创建 Azure Databricks Terraform 是一种基础设施即代码(IaC)工具,允许用户通过声明式配置文件来管理和部署云资源。Azure Databricks 是一个基于 Apache Spark 的分析平台,专为数据工程和数据科学设计。通过 Terraform,可以自动化 Azure Databricks 的创…...

本地部署dify+ragflow+deepseek ,结合小模型实现故障预测,并结合本地知识库和大模型给出维修建议

1.准备工作 使用ollama 拉取deepseek-r1:7b 官网下载ollama ollama run deepseek-r1:7b ollama list Ragflow专注于构建基于检索增强生成&#xff08;RAG&#xff09;的工作流&#xff0c;强调模块化和轻量化&#xff0c;适合处理复杂文档格式和需要高精度检索的场景。Dify…...

SECERN AI提出3D生成方法SVAD!单张图像合成超逼真3D Avatar!

SECERN AI提出的3D生成方法SVAD通过视频扩散生成合成训练数据&#xff0c;利用身份保留和图像恢复模块对其进行增强&#xff0c;并利用这些经过优化的数据来训练3DGS虚拟形象。SVAD在新的姿态和视角下保持身份一致性和精细细节方面优于现有最先进&#xff08;SOTA&#xff09;的…...

深入探索:Core Web Vitals 进阶优化与新兴指标

一、INP&#xff08;Interaction to Next Paint&#xff09;深度解析 INP 与 FID 的核心差异 • 响应范围&#xff1a;FID仅测量首次输入延迟&#xff0c;而INP跟踪页面生命周期中所有关键交互 • 测量维度&#xff1a;INP综合考虑输入延迟、处理时间和下一帧渲染时间 • 评…...

c/c++的opencv开闭操作

OpenCV 中的形态学开运算与闭运算 (C) 在计算机视觉和图像处理领域&#xff0c;形态学操作是用于分析和处理图像形状的一系列非线性操作。OpenCV 作为一个强大的开源计算机视觉库&#xff0c;提供了丰富的形态学转换函数。其中&#xff0c;“开运算”&#xff08;Opening&…...

【物联网】 ubantu20.04 搭建L2TP服务器

部署篇 序言 为了是两个客户端在同一个网络内&#xff0c;需要找一台服务器&#xff0c;搭建一个L2TP服务器&#xff0c;通过L2TP使两个客户端在同一个网络内,为什么要搭建&#xff0c;主要是解决例如员工出差后&#xff0c;还需要连接公司内网资源的问题&#xff0c;本文主要…...

winrar 工具测试 下载 与安装

https://zhuanlan.zhihu.com/p/680852417 https://www.angusj.com/resourcehacker/#download 点击String Table&#xff0c;在展开列表中找到80:2052展开&#xff0c;删除1277行。点击右上方编译按钮&#xff0c;并保存。...

PLC组网的方法、要点及实施全解析

一、PLC组网方法 1.1 基于以太网的组网 - 适用场景&#xff1a;适用于数据传输量大、通信距离长、对实时性要求相对不苛刻的场景&#xff0c;如大型工厂的车间级数据交互、跨区域设备协同控制 。 - 实现方式&#xff1a;利用工业以太网交换机&#xff0c;将支持以太网接口的…...

网络安全深度解析:21种常见网站漏洞及防御指南

一、高危漏洞TOP 10 1. SQL注入(SQLi) 原理:通过构造恶意SQL语句突破系统过滤机制 典型场景: - 联合查询注入: union select 1,version(),3--+ - 布尔盲注:and (select substr(user(),1,1)=r) - 时间盲注:;if(now()=sysdate(),sleep(5),0)/ 防御方案: - 严格参数化查…...

【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit (3)

1.问题描述&#xff1a; 通过CardRecognition识别身份证拍照拿到的照片地址&#xff0c;使用该方法获取不到图片文件&#xff0c;请问如何解决&#xff1f; 解决方案&#xff1a; //卡证识别实现页&#xff0c;文件名为CardDemoPage&#xff0c;需被引入至入口页 import { …...

Java大厂面试实战:Spring Boot与微服务场景中的技术点解析

Java大厂面试实战&#xff1a;Spring Boot与微服务场景中的技术点解析 第一轮&#xff1a;基础技术了解 面试官&#xff1a;谢飞机&#xff0c;你好。从简历上看&#xff0c;你熟悉Spring Boot&#xff0c;那我们来聊聊它的核心功能吧。Spring Boot有哪些主要的特性&#xff…...

从零启动 Elasticsearch

elastic 有弹力的 ElaticSearch &#xff08;ES&#xff09;是一个基于 Lucene 的分布式全文检索引擎。可以做到近乎实时地存储、检索数据&#xff0c;并且本身具有良好的扩展性&#xff0c;可以扩展到上百台服务器&#xff0c;处理PB级别&#xff08;1 Petabyte 1024TB&…...

比较两个用于手写体识别的卷积神经网络(CNN)模型

要比较两个用于手写体识别的卷积神经网络(CNN)模型,可以从以下 ‌6个核心维度‌ 进行系统性评估,并直接给出对比结论: ‌一、基础性能对比(核心指标)‌ ‌准确率‌ 直接比较两个模型在 ‌相同测试集‌ 上的分类准确率(如MNIST测试集的错误率是否低于0.5%)若准确率接近…...

Linux利用多线程和线程同步实现一个简单的聊天服务器

1. 概述 本文实现一个基于TCP/IP的简单多人聊天室程序。它包含一个服务器端和一个客户端&#xff1a;服务器能够接收多个客户端的连接&#xff0c;并将任何一个客户端发来的消息广播给所有其他连接的客户端&#xff1b;客户端则可以连接到服务器&#xff0c;发送消息并接收来自…...

【计网】作业5

待补充 212.56.132.0/24 212.56.1000 0100.0 212.56.133.0/24 212.56.1000 0101.0 212.56.134.0/24 212.56.1000 0110.0 212.56.135.0/24 212.56.1000 0111.0 最小的212.56.1000 0100.0 四个&#xff0c;2^2 212.56.132.0/22 1111 1111.1111 1111.1111 1100.0000 0000 255.255.…...

15、Python布尔逻辑全解析:运算符优先级、短路特性与实战避坑指南

适合人群&#xff1a;零基础自学者 | 编程小白快速入门 阅读时长&#xff1a;约6分钟 文章目录 一、问题&#xff1a;Python布尔值的底层原理?1、例子1&#xff1a;电路开关模型解析布尔本质2、例子2&#xff1a;特殊的布尔类型值为False3、答案&#xff1a;&#xff08;1&…...

Nginx基础知识

Nginx是什么&#xff1f; Nginx 是一款高性能的 Web 服务器、反向代理服务器和负载均衡器&#xff0c;以其高并发处理能力和低内存消耗著称。以下是 Nginx 的基础知识和常见配置示例&#xff1a; 1. 核心概念 • 配置文件位置&#xff1a;通常为 /etc/nginx/nginx.conf 或 /us…...

Vue-监听属性

监听属性 简单监听 点击切换名字&#xff0c;来回变更Tom/Jerry&#xff0c;输出 你好&#xff0c;Tom/Jerry 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>监听属性</title><!-- …...

python fastapi + react, 写一个图片 app

1. 起因&#xff0c; 目的: 上厕所的时候&#xff0c;想用手机查看电脑上的图片&#xff0c;但是又不想点击下载。此app 应运而生。 2. 先看效果 单击图片&#xff0c;能放大图片 3. 过程: 过程很枯燥。有时候&#xff0c; 有一堆新的想法。 但是做起来太麻烦&#xff0c;…...

nginx集成防火墙ngx_waf的docker版

由于公网的环境越来与严峻&#xff0c;所以想找一个nginx带防火墙的版本 调研过openresty&#xff0c;大部分集成redis了&#xff0c;感觉还是太重了&#xff0c;有一个不那么重的https://github.com/unixhot/waf 但是维护没有那么勤&#xff0c;最后维护是5年前&#xff0c;倒…...

vscode c++编译onnxruntime cuda 出现的问题

问题描述 将onnx的dll文件和lib文件copy到可执行文件所在文件夹下后&#xff0c;现象&#xff1a; 双击可执行文件能正常运行 在vscode中点击cmake插件的运行按钮出现报错为 c [ONNXRuntimeError] : 1 : FAIL : LoadLibrary failed with error 126 “” when trying to load尝试…...

sts下载安装

windows下STS&#xff08;Spring Tools Suite&#xff0c;自带spring插件的eclipse&#xff09;的下载与安装_sts下载-CSDN博客Spring Boot安装与配置教程_spring boot安装配置-CSDN博客...

中服云生产线自动化智能化调度生产系统:打造智能制造新标杆

前言 在当今制造业竞争日益激烈的背景下&#xff0c;实现生产线的自动化与智能化已成为企业提升竞争力的关键。作为国内技术领先的工业物联网平台、数字孪生、自动控制技术厂商&#xff0c;中服云凭借其深厚的技术积累和创新能力&#xff0c;打造了一套完整的生产线自动化智能…...

next.js实现项目搭建

一、创建 Next.js 项目的步骤 1、安装 npx create-next-applatest # 或 yarn create next-app # 或 pnpm create next-app 按照交互式提示配置你的项目&#xff1a; 输入项目名称 选择是否使用 TypeScript 选择是否启用 ESLint 选择是否启用 Tailwind CSS 选择是否使用 s…...

Redisson 四大核心机制实现原理详解

一、可重入锁&#xff08;Reentrant Lock&#xff09; 可重入锁是什么&#xff1f; 通俗定义 可重入锁类似于一把“智能锁”&#xff0c;它能识别当前的锁持有者是否是当前线程&#xff1a; 如果是&#xff0c;则允许线程重复获取锁&#xff08;重入&#xff09;&#xff0c;并…...

云鼎入鼎系统:一站式电商管理解决方案

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务) &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1;个人微信&a…...

Leetcode134加油站

题目链接 134 题意图解&#xff1a; 题目给了n个节点&#xff0c;这些节点呈现环状&#xff0c;每次到一个低点要消耗cost[i]的油量。 从中我们可以得出一个结论&#xff1a;看一个点能不能到下一个点&#xff0c;就要用当前的油量减去消耗的量&#xff0c;那么gas[i] - cost…...

关于Android Studio for Platform的使用记录

文章目录 简单介绍如何使用配置导入aosp工程配置文件asfp-config.json 简单介绍 Android Studio for Platform是google最新开发&#xff0c;用来阅读aosp源码的工具 详细的资料介绍&#xff1a; https://developer.android.google.cn/studio/platform 将工具下载下来直接点击…...

Linux的内存泄漏问题及排查方法

内存泄漏是指在计算机程序中&#xff0c;已不再被使用的内存未被正确释放&#xff0c;导致内存占用随时间累积&#xff0c;进而引发系统内存不足、性能下降甚至崩溃的问题。在Linux系统中&#xff0c;开发者和运维人员可通过以下方法排查和解决内存泄漏问题&#xff1a; 1. 使…...