百度高德地图坐标转换
百度地图和高德地图的侧重点不太一样。同样一个地名,在百度地图网站上搜索到的地点可能是商业网点,在高德地图网站上搜索到的地点可能是自然行政地点。
高德地图api
在高德地图中,搜索地名,如“乱石头川”,该地名会出现这样的链接
https://ditu.amap.com/place/B0FFGXCDLJ
这个高德地图连接中最后的“B0FFGXCDLJ”是什么意思?如何转化为经纬度坐标
在高德地图的链接中,B0FFGXCDLJ
是一个 地点的唯一标识符(POI ID),用于标识地图上的某个特定地点。它并不是直接的经纬度信息,而是高德地图内部用于定位和检索地点的编码。
如何将 POI ID 转换为经纬度坐标
要将 POI ID 转换为经纬度坐标,可以通过高德地图的 API 来实现。高德地图提供了丰富的API接口,其中 地理编码API 和 逆地理编码API 可以用于查询地点的详细信息,包括经纬度。
以下是一个使用 Python 和高德地图API将 POI ID 转换为经纬度坐标的示例代码:
import requests# 高德地图API的Key(需要在高德地图开放平台申请)
AMAP_API_KEY = "你的API_KEY"# POI ID
poi_id = "B0FFGXCDLJ"# 高德地图的POI详情查询API
url = f"https://www.amap.com/detail/get/{poi_id}"# 发起请求
response = requests.get(url, params={"key": AMAP_API_KEY})
data = response.json()# 解析经纬度信息
if data.get("status") == "1" and data.get("info") == "OK":location = data["data"]["spec"]["location"]longitude, latitude = map(float, location.split(","))print(f"提取的经纬度信息:经度 = {longitude}, 纬度 = {latitude}")
else:print("无法获取经纬度信息,请检查POI ID或API Key是否正确。")
代码说明
API Key:需要在高德地图开放平台(https://lbs.amap.com/)注册账号并申请一个API Key。
API 请求:通过 https://www.amap.com/detail/get/{poi_id} 接口查询POI的详细信息。
解析数据:从返回的JSON数据中提取经纬度信息。location 字段通常包含经纬度,格式为“经度,纬度”。
在高德开放平台中,有如下功能。
坐标拾取器 | 高德地图API
示例运行
假设你已经申请了API Key并将其替换到代码中的 AMAP_API_KEY,运行代码后,输出结果可能如下:
提取的经纬度信息:经度 = 116.397428, 纬度 = 39.90923
注意事项
API Key 限制:高德地图API Key有调用次数限制,免费额度通常足够个人使用,但大量请求可能需要付费。
数据准确性:返回的经纬度信息是高德地图数据库中的数据,可能与实际位置有细微偏差。
错误处理:在实际使用中,建议添加更详细的错误处理逻辑,以应对网络请求失败、API Key无效等情况。
在拾取经纬点的时候,要选择合适的城市,防止异地重名。如下所示:
高德地图的坐标系是基于GCJ-02(火星坐标系),而WGS-84是国际上常用的地理坐标系。将高德地图的坐标转换为WGS-84坐标需要进行坐标转换。以下是一个简单的Python代码示例,使用了pyproj库来完成坐标转换。
坐标系的差异:高德地图的坐标系(GCJ-02)和WGS-84坐标系存在一定的偏差。简单的投影转换可能无法完全消除这种偏差,尤其是在高精度要求的场景中。
更精确的转换:如果需要更精确的转换,可以考虑使用专门的算法(如高斯投影反算)或调用高德地图提供的API进行转换。
代码如下:
import math
# 定义常量
PI = math.pi
A = 6378245.0
EE = 0.00669342162296594323
X_PI = PI * 3000.0 / 180.0def transformlat(lng, lat):ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * math.sqrt(math.fabs(lng))ret += (20.0 * math.sin(6.0 * lng * PI) + 20.0 * math.sin(2.0 * lng * PI)) * 2.0 / 3.0ret += (20.0 * math.sin(lat * PI) + 40.0 * math.sin(lat / 3.0 * PI)) * 2.0 / 3.0ret += (160.0 * math.sin(lat / 12.0 * PI) + 320 * math.sin(lat * PI / 30.0)) * 2.0 / 3.0return retdef transformlng(lng, lat):ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * math.sqrt(math.fabs(lng))ret += (20.0 * math.sin(6.0 * lng * PI) + 20.0 * math.sin(2.0 * lng * PI)) * 2.0 / 3.0ret += (20.0 * math.sin(lng * PI) + 40.0 * math.sin(lng / 3.0 * PI)) * 2.0 / 3.0ret += (150.0 * math.sin(lng / 12.0 * PI) + 300.0 * math.sin(lng / 30.0 * PI)) * 2.0 / 3.0return retdef out_of_china(lng, lat):return not (73.66 < lng < 135.05 and 3.86 < lat < 53.55)def gcj02_to_wgs84(gcj_lng, gcj_lat):if out_of_china(gcj_lng, gcj_lat):return gcj_lng, gcj_lat # 不在中国范围内,直接返回原坐标dlat = transformlat(gcj_lng - 105.0, gcj_lat - 35.0)dlng = transformlng(gcj_lng - 105.0, gcj_lat - 35.0)radlat = gcj_lat / 180.0 * PImagic = math.sin(radlat)magic = 1 - EE * magic * magicsqrtmagic = math.sqrt(magic)dlat = (dlat * 180.0) / ((A * (1 - EE)) / (magic * sqrtmagic) * PI)dlng = (dlng * 180.0) / (A / sqrtmagic * math.cos(radlat) * PI)mglat = gcj_lat + dlatmglng = gcj_lng + dlngwgs84_lng = gcj_lng * 2 - mglngwgs84_lat = gcj_lat * 2 - mglatreturn wgs84_lng, wgs84_lat# 示例:高德地图的经纬度
while True:gcInfo=input("请输入高德坐标信息:")gcList=gcInfo.split(",")gcj_lng = float(gcList[0]) # 经度gcj_lat = float(gcList[1]) # 纬度# 转换为WGS-84坐标wgs84_lng, wgs84_lat = gcj02_to_wgs84(gcj_lng, gcj_lat)print(f"高德地图坐标(GCJ-02): 经度={gcj_lng}, 纬度={gcj_lat}")print(f"WGS-84坐标: 经度={wgs84_lng}, 纬度={wgs84_lat}")
即可完成。
百度地图api
百度地图点线面查询 api huiyan,网站如下:
https://huiyan.baidu.com/github/tools/coord/
在该网站上,可以选择一个点,然后知道其经纬度坐标和墨卡托坐标。
但是需要注意如下:
# * 各地图API坐标系统比较与转换;
# * WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系,
# * 谷歌地图采用的是WGS84地理坐标系(中国范围除外);
# * GCJ02坐标系:即火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。谷歌中国地图和搜搜中国地图采用的是GCJ02地理坐标系;
# * 3BD09坐标系:即百度坐标系,GCJ02坐标系经加密后的坐标系;
所以,要想把百度地图上的经纬度点转换为Arcgis底图中的坐标点,还需要进行解密,将3BD09坐标系的坐标位置还原为WGS84地理坐标系的坐标位置。代码如下
import math
from decimal import *# -*- coding: utf-8 -*-
# /**
# * 各地图API坐标系统比较与转换;
# * WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系,
# * 谷歌地图采用的是WGS84地理坐标系(中国范围除外);
# * GCJ02坐标系:即火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。谷歌中国地图和搜搜中国地图采用的是GCJ02地理坐标系;
# * 3BD09坐标系:即百度坐标系,GCJ02坐标系经加密后的坐标系;
# */
import math
from decimal import *class transfer:def __init__(self,key=None):self.a=6378245.0self.ee=Decimal(0.00669342162296594323)def transformLng(self,x,y):ret=Decimal()ret = 300.0+x+2.0*y+0.1*x*x+0.1*x*y+0.1*math.sqrt(math.fabs(x))ret += (20.0 * math.sin(6.0 * x * math.pi) + 20.0 * math.sin(2.0 * x * math.pi)) * 2.0 / 3.0ret += (20.0 * math.sin(x * math.pi) + 40.0 * math.sin(x / 3.0 * math.pi)) * 2.0 / 3.0ret += (150.0 * math.sin(x / 12.0 * math.pi) + 300.0 * math.sin(x / 30.0* math.pi)) * 2.0 / 3.0return retdef transformLat(self,x,y):ret = Decimal()ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y+ 0.2 * math.sqrt(math.fabs(x))ret += (20.0 * math.sin(6.0 * x * math.pi) + 20.0 * math.sin(2.0 * x * math.pi)) * 2.0 / 3.0ret += (20.0 * math.sin(y * math.pi) + 40.0 * math.sin(y / 3.0 * math.pi)) * 2.0 / 3.0ret += (160.0 * math.sin(y / 12.0 * math.pi) + 320 * math.sin(y * math.pi / 30.0)) * 2.0 / 3.0return retdef transfrom(self,lng,lat):dLat = self.transformLat(lng - 105.0, lat - 35.0)dLng = self.transformLng(lng - 105.0, lat - 35.0)radLat = lat / 180.0 * math.pimagic = math.sin(radLat)magic = 1 - self.ee * Decimal(magic) * Decimal(magic)sqrtMagic = math.sqrt(magic)dLat = Decimal((dLat * 180.0)) / ((Decimal(self.a) * (1 - self.ee)) / (Decimal(magic) * Decimal(sqrtMagic)) * Decimal(math.pi))dLng = (dLng * 180.0) / (self.a / sqrtMagic * math.cos(radLat) * math.pi)mgLat = lat + float(dLat)mgLng = lng + dLngreturn mgLng,mgLat#gps坐标转换为gcj02坐标系def wg84_to_gcj02(self,wg84_lng,wg84_lat):dLat=self.transformLat(wg84_lng-105.0,wg84_lat-35.0)dLng=self.transformLng(wg84_lng-105.0,wg84_lat-35.0)radLat = wg84_lat / 180.0 * math.pimagic = math.sin(radLat)magic = 1 - self.ee * Decimal(magic) * Decimal(magic)sqrtMagic = math.sqrt(magic)dLat = Decimal((dLat * 180.0)) / ((Decimal(self.a) * (1 - self.ee)) / (Decimal(magic) * Decimal(sqrtMagic)) * Decimal(math.pi))dLng = (dLng * 180.0) / (self.a / sqrtMagic * math.cos(radLat) * math.pi)gcj02Lat = wg84_lat + float(dLat)gcj02Lng = wg84_lng + dLngreturn gcj02Lng,gcj02Lat#gcj02坐标转百度坐标def gcj02_to_bd09(self,gcj02_lng,gcj02_lat):x = gcj02_lngy = gcj02_latz = math.sqrt(x * x + y * y) + 0.00002 * math.sin(y * math.pi)theta = math.atan2(y, x) + 0.000003 * math.cos(x * math.pi)bd09_Lng = z * math.cos(theta) + 0.0065bd09_Lat = z * math.sin(theta) + 0.006return bd09_Lng,bd09_Lat#wg84坐标转百度坐标def wg84_to_bd09(self,wg84_lng,wg84_lat):gcj02lng,gcj02lat=self.wg84_to_gcj02(wg84_lng,wg84_lat)return self.gcj02_to_bd09(gcj02lng,gcj02lat)#百度坐标转GCJ02坐标def bd09_to_gcj02(self,bd09_lng,bd09_lat):x = bd09_lng - 0.0065y = bd09_lat - 0.006z = math.sqrt(x * x + y * y) - 0.00002 * math.sin(y * math.pi)theta = math.atan2(y, x) - 0.000003 * math.cos(x * math.pi)gcj02_lng = z * math.cos(theta)gcj02_lat = z * math.sin(theta)return gcj02_lng,gcj02_lat#GCJ坐标转WG84坐标def gcj02_to_wg84(self,gcj02_lng,gcj02_lat):mlng,mlat=self.transfrom(gcj02_lng,gcj02_lat)wg84_Lng=gcj02_lng*2-mlngwg84_Lat=gcj02_lat*2-mlatreturn wg84_Lng,wg84_Lat#将百度坐标转WG84坐标def bd09_to_wg84(self,bd09_lng,bd09_lat):gcj02_lng, gcj02_lat=self.bd09_to_gcj02(bd09_lng,bd09_lat)return self.gcj02_to_wg84(gcj02_lng,gcj02_lat)tr=transfer()
#测试,转换正确#循环输入坐标信息
while True:xyInfo=input("请输入百度坐标信息:")xyList=xyInfo.split(",")bd09_lng=float(xyList[0])bd09_lat=float(xyList[1])#输出 百度坐标转WG84坐标print("百度坐标信息:")print(bd09_lng)print(bd09_lat)print("WGS坐标信息")print(tr.bd09_to_wg84(bd09_lng,bd09_lat)[0])print(tr.bd09_to_wg84(bd09_lng,bd09_lat)[1])print()
即可转换完成。
综合代码
根据以上分析,总的代码如下:
choice=input("请选择高德坐标G 或者百度坐标B:")
choice=choice.upper()
if choice=="B":import mathfrom decimal import *# -*- coding: utf-8 -*-# /**# * 各地图API坐标系统比较与转换;# * WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系,# * 谷歌地图采用的是WGS84地理坐标系(中国范围除外);# * GCJ02坐标系:即火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。谷歌中国地图和搜搜中国地图采用的是GCJ02地理坐标系; # * 3BD09坐标系:即百度坐标系,GCJ02坐标系经加密后的坐标系;# */import mathfrom decimal import *class transfer:def __init__(self,key=None):self.a=6378245.0self.ee=Decimal(0.00669342162296594323)def transformLng(self,x,y):ret=Decimal()ret = 300.0+x+2.0*y+0.1*x*x+0.1*x*y+0.1*math.sqrt(math.fabs(x))ret += (20.0 * math.sin(6.0 * x * math.pi) + 20.0 * math.sin(2.0 * x * math.pi)) * 2.0 / 3.0ret += (20.0 * math.sin(x * math.pi) + 40.0 * math.sin(x / 3.0 * math.pi)) * 2.0 / 3.0ret += (150.0 * math.sin(x / 12.0 * math.pi) + 300.0 * math.sin(x / 30.0* math.pi)) * 2.0 / 3.0return retdef transformLat(self,x,y):ret = Decimal()ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y+ 0.2 * math.sqrt(math.fabs(x))ret += (20.0 * math.sin(6.0 * x * math.pi) + 20.0 * math.sin(2.0 * x * math.pi)) * 2.0 / 3.0ret += (20.0 * math.sin(y * math.pi) + 40.0 * math.sin(y / 3.0 * math.pi)) * 2.0 / 3.0ret += (160.0 * math.sin(y / 12.0 * math.pi) + 320 * math.sin(y * math.pi / 30.0)) * 2.0 / 3.0return retdef transfrom(self,lng,lat):dLat = self.transformLat(lng - 105.0, lat - 35.0)dLng = self.transformLng(lng - 105.0, lat - 35.0)radLat = lat / 180.0 * math.pimagic = math.sin(radLat)magic = 1 - self.ee * Decimal(magic) * Decimal(magic)sqrtMagic = math.sqrt(magic)dLat = Decimal((dLat * 180.0)) / ((Decimal(self.a) * (1 - self.ee)) / (Decimal(magic) * Decimal(sqrtMagic)) * Decimal(math.pi))dLng = (dLng * 180.0) / (self.a / sqrtMagic * math.cos(radLat) * math.pi)mgLat = lat + float(dLat)mgLng = lng + dLngreturn mgLng,mgLat#gps坐标转换为gcj02坐标系def wg84_to_gcj02(self,wg84_lng,wg84_lat):dLat=self.transformLat(wg84_lng-105.0,wg84_lat-35.0)dLng=self.transformLng(wg84_lng-105.0,wg84_lat-35.0)radLat = wg84_lat / 180.0 * math.pimagic = math.sin(radLat)magic = 1 - self.ee * Decimal(magic) * Decimal(magic)sqrtMagic = math.sqrt(magic)dLat = Decimal((dLat * 180.0)) / ((Decimal(self.a) * (1 - self.ee)) / (Decimal(magic) * Decimal(sqrtMagic)) * Decimal(math.pi))dLng = (dLng * 180.0) / (self.a / sqrtMagic * math.cos(radLat) * math.pi)gcj02Lat = wg84_lat + float(dLat)gcj02Lng = wg84_lng + dLngreturn gcj02Lng,gcj02Lat#gcj02坐标转百度坐标def gcj02_to_bd09(self,gcj02_lng,gcj02_lat):x = gcj02_lngy = gcj02_latz = math.sqrt(x * x + y * y) + 0.00002 * math.sin(y * math.pi)theta = math.atan2(y, x) + 0.000003 * math.cos(x * math.pi)bd09_Lng = z * math.cos(theta) + 0.0065bd09_Lat = z * math.sin(theta) + 0.006return bd09_Lng,bd09_Lat#wg84坐标转百度坐标def wg84_to_bd09(self,wg84_lng,wg84_lat):gcj02lng,gcj02lat=self.wg84_to_gcj02(wg84_lng,wg84_lat)return self.gcj02_to_bd09(gcj02lng,gcj02lat)#百度坐标转GCJ02坐标def bd09_to_gcj02(self,bd09_lng,bd09_lat):x = bd09_lng - 0.0065y = bd09_lat - 0.006z = math.sqrt(x * x + y * y) - 0.00002 * math.sin(y * math.pi)theta = math.atan2(y, x) - 0.000003 * math.cos(x * math.pi)gcj02_lng = z * math.cos(theta)gcj02_lat = z * math.sin(theta)return gcj02_lng,gcj02_lat#GCJ坐标转WG84坐标def gcj02_to_wg84(self,gcj02_lng,gcj02_lat):mlng,mlat=self.transfrom(gcj02_lng,gcj02_lat)wg84_Lng=gcj02_lng*2-mlngwg84_Lat=gcj02_lat*2-mlatreturn wg84_Lng,wg84_Lat#将百度坐标转WG84坐标def bd09_to_wg84(self,bd09_lng,bd09_lat):gcj02_lng, gcj02_lat=self.bd09_to_gcj02(bd09_lng,bd09_lat)return self.gcj02_to_wg84(gcj02_lng,gcj02_lat)tr=transfer()#测试,转换正确#循环输入坐标信息while True:xyInfo=input("请输入百度坐标信息:")xyList=xyInfo.split(",")bd09_lng=float(xyList[0])bd09_lat=float(xyList[1])#输出 百度坐标转WG84坐标print("百度坐标信息:")elif choice=="G":import math# 定义常量PI = math.piA = 6378245.0EE = 0.00669342162296594323X_PI = PI * 3000.0 / 180.0def transformlat(lng, lat):ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * math.sqrt(math.fabs(lng))ret += (20.0 * math.sin(6.0 * lng * PI) + 20.0 * math.sin(2.0 * lng * PI)) * 2.0 / 3.0ret += (20.0 * math.sin(lat * PI) + 40.0 * math.sin(lat / 3.0 * PI)) * 2.0 / 3.0ret += (160.0 * math.sin(lat / 12.0 * PI) + 320 * math.sin(lat * PI / 30.0)) * 2.0 / 3.0return retdef transformlng(lng, lat):ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * math.sqrt(math.fabs(lng))ret += (20.0 * math.sin(6.0 * lng * PI) + 20.0 * math.sin(2.0 * lng * PI)) * 2.0 / 3.0ret += (20.0 * math.sin(lng * PI) + 40.0 * math.sin(lng / 3.0 * PI)) * 2.0 / 3.0ret += (150.0 * math.sin(lng / 12.0 * PI) + 300.0 * math.sin(lng / 30.0 * PI)) * 2.0 / 3.0return retdef out_of_china(lng, lat):return not (73.66 < lng < 135.05 and 3.86 < lat < 53.55)def gcj02_to_wgs84(gcj_lng, gcj_lat):if out_of_china(gcj_lng, gcj_lat):return gcj_lng, gcj_lat # 不在中国范围内,直接返回原坐标dlat = transformlat(gcj_lng - 105.0, gcj_lat - 35.0)dlng = transformlng(gcj_lng - 105.0, gcj_lat - 35.0)radlat = gcj_lat / 180.0 * PImagic = math.sin(radlat)magic = 1 - EE * magic * magicsqrtmagic = math.sqrt(magic)dlat = (dlat * 180.0) / ((A * (1 - EE)) / (magic * sqrtmagic) * PI)dlng = (dlng * 180.0) / (A / sqrtmagic * math.cos(radlat) * PI)mglat = gcj_lat + dlatmglng = gcj_lng + dlngwgs84_lng = gcj_lng * 2 - mglngwgs84_lat = gcj_lat * 2 - mglatreturn wgs84_lng, wgs84_lat# 示例:高德地图的经纬度while True:gcInfo=input("请输入高德坐标信息:")gcList=gcInfo.split(",")gcj_lng = float(gcList[0]) # 经度gcj_lat = float(gcList[1]) # 纬度# 转换为WGS-84坐标wgs84_lng, wgs84_lat = gcj02_to_wgs84(gcj_lng, gcj_lat)print(f"高德地图坐标(GCJ-02): 经度={gcj_lng}, 纬度={gcj_lat}")print(f"WGS-84坐标: 经度={wgs84_lng}, 纬度={wgs84_lat}")print(bd09_lng)print(bd09_lat)print("WGS坐标信息")print(tr.bd09_to_wg84(bd09_lng,bd09_lat)[0])print(tr.bd09_to_wg84(bd09_lng,bd09_lat)[1])print()
即可完成。
一日一图
代码如下:
import turtle as t# 设置画布
t.speed('fastest') # 设置绘图速度
t.hideturtle() # 隐藏海龟图标
t.bgcolor('black') # 设置背景颜色# 绘制时空隧道
i = 0
while i < 235:t.pencolor('cyan') # 设置画笔颜色为青色t.penup() # 提起画笔t.goto(0, 0) # 移动到中心点t.forward(200) # 向前移动200单位t.pendown() # 放下画笔t.circle(100) # 绘制半径为100的圆t.left(2) # 左转2度i += 1# 结束绘图
t.done()
-
设置画布:设置背景颜色为黑色,隐藏海龟图标,设置绘图速度为最快。
-
绘制时空隧道:通过循环绘制多个圆形,每次绘制后稍微左转,形成螺旋效果。
-
颜色选择:使用青色(
cyan
)作为画笔颜色,以增强未来感。 -
循环次数:循环多次,每次绘制一个圆形并左转2度,形成螺旋状的时空隧道效果。
生成图片如下:
相关文章:
百度高德地图坐标转换
百度地图和高德地图的侧重点不太一样。同样一个地名,在百度地图网站上搜索到的地点可能是商业网点,在高德地图网站上搜索到的地点可能是自然行政地点。 高德地图api 在高德地图中,搜索地名,如“乱石头川”,该地名会出…...
LIMO:上海交大的工作 “少即是多” LLM 推理
25年2月来自上海交大、SII 和 GAIR 的论文“LIMO: Less is More for Reasoning”。 一个挑战是在大语言模型(LLM)中的复杂推理。虽然传统观点认为复杂的推理任务需要大量的训练数据(通常超过 100,000 个示例),但本文展…...
Windows逆向工程入门之汇编环境搭建
公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 Visual Studio逆向工程配置 基础环境搭建 Visual Studio 官方下载地址安装配置选项(后期可随时通过VS调整) 使用C的桌面开发 拓展可选选项 MASM汇编框架 配置MASM汇编项目 创建新项目 选择空…...
Git安全回退历史版本
Git安全回退历史版本 方法特点git revert保留所有中间提交历史,生成显式的反向提交,适合精确撤销特定提交。直接提交快速生成一个回退提交,无需处理多个撤销操作,适合简单回退到某个旧版本。 git revert 仅回退一个版本 git r…...
消费电子产品中的噪声对TPS54202的影响
本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时,也能帮助其他需要参考的朋友。如有谬误,欢迎大家进行指正。 一、概述 在白色家电领域,降压转换器的应用非常广泛,为了实现不同的功能就需要不同的电源轨。TPS542…...
ASP.NET Core 外部向SignalR的Hub发消息
实现 Hub类中的方法只应该用于消息的发布,而不应该用来写业务逻辑,SignalR中客户端给服务器端传递消息的超时时间为30s,如果对Hub类中的方法的调用执行时间超过30s,程序就会报错。可以在MVC控制器、托管服务等外部向客户端推送消…...
Ubuntu 多版本 gcc 配置常用命令备忘
用的频率不高,总忘记具体参数 1,安装多版本 gcc 以 gcc-11 和12 为例: sudo apt-get install gcc-11 gcc-12 sudo apt-get install gcc-11 gcc-12 2,配置多版本 gcc gcc 与 g 一起配置进数据库中: sudo update-a…...
树形表查询方法
树形数据表在开发中会经常遇到,parentid字段为父结点ID,它是树型结构的标志字段。 查询方法: 1.自连接查询 如果树的层级固定可以使用表的自链接去查询,比如:我们只查询两级课程分类,可以用下边的SQL selectone.id …...
OpenStack-Train版-Allinone自动化部署脚本
一、环境准备 操作系统:CentOS 7 或以上版本 建议配置: CPU:8 核或以上 内存:16 GB 或以上 磁盘:500 GB 或以上 网络配置: 确保虚拟机已配置静态 IP 地址 确保虚拟机可以正常访问外部网络 二、自动…...
[笔记] 汇编杂记(持续更新)
文章目录 前言举例解释函数的序言函数的调用栈数据的传递 总结 前言 举例解释 // Type your code here, or load an example. int square(int num) {return num * num; }int sub(int num1, int num2) {return num1 - num2; }int add(int num1, int num2) {return num1 num2;…...
Hono.js入门指南_从零开始构建Web应用
1. 引言 项目背景与动机 随着现代Web开发的快速发展,构建高效、轻量且易于维护的Web应用变得越来越重要。Hono.js作为一个轻量级的Node.js框架,以其简洁的API和高效的性能吸引了众多开发者。本文将带你从零开始,逐步构建一个功能齐全的Web应用,帮助你快速上手Hono.js。 …...
后盾人JS -- 模块化开发
开发模块管理引擎 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </he…...
python-leetcode 23.回文链表
题目: 给定单链表的头节点head,判断该链表是否为回文链表,如果是,返回True,否则,返回False 输入:head[1,2,2,1] 输出:true 方法一:将值复制到数组中后用双指针法 有两种常用的列表实现&#…...
echarts 3d中国地图飞行线
一、3D中国地图 1. 一定要使用 echarts 5.0及以上的版本; 2. echarts 5.0没有内置中国地图了。点击下载 china.json; 3. 一共使用了四层地图。 (1)第一层是中国地图各省细边框和展示南海诸岛; (2)第二层是…...
Vivado IP之浮点数Floating-point
在Vivado的IP Catalog中搜索Floating-point即可找到该IP Operation Selection界面 1.绝对值,即result|A| 2.累加 3.两个浮点数的加法或者减法 4.两个浮点数进行比较 5.两个浮点数的除法 6.求指数,即e^A 7.定点数到浮点数的转化 8.浮点数转化为定…...
只需三步!5分钟本地部署deep seek——MAC环境
MAC本地部署deep seek 第一步:下载Ollama第二步:下载deepseek-r1模型第三步:安装谷歌浏览器插件 第一步:下载Ollama 打开此网址:https://ollama.com/,点击下载即可,如果网络比较慢可使用文末百度网盘链接 注:Ollama是…...
DeepSeek和ChatGPT的优劣或者区别(答案来DeepSeek和ChatGPT)
DeepSeek的答案 DeepSeek与ChatGPT作为当前两大主流AI模型,在架构设计、性能表现、应用场景等方面存在显著差异,以下从多个维度进行对比分析: 一、架构与训练效率 架构设计 DeepSeek:采用混合专家(MoE)框架…...
1 推荐系统概述
推荐系统概述 1 推荐系统的意义平台方信息生产者(物品)信息消费者(用户)推荐和搜索的区别 2 推荐系统架构系统架构算法架构 3 推荐系统技术栈算法画像层召回/粗排精排重排序 工程 1 推荐系统的意义 信息生产者(平台方…...
JavaEE架构
一.架构选型 1.VM架构 VM架构通常指的是虚拟机(Virtual Machine)的架构。虚拟机是一种软件实现的计算机系统,它模拟了物理计算机的功能,允许在单一物理硬件上运行多个操作系统实例。虚拟机架构主要包括以下几个关键组件ÿ…...
C++ labmbd表达式
文章目录 C++ Lambda 表达式详解1. Lambda 表达式的组成部分:2. Lambda 语法示例(1) 最简单的 Lambda(2) 带参数的 Lambda(3) 指定返回类型的 Lambda3. 捕获外部变量(1) 值捕获(复制)(2) 引用捕获(3) 捕获所有变量4. Lambda 在 STL 中的应用5. Lambda 作为 `std::function`6…...
当Axure遇见DeepSeek:设计工具的革命性进化
从传统的平面设计软件到如今的交互原型工具,设计工具经历了多次革命性的进化。然而,随着人工智能技术的不断发展,设计工具正面临又一次重大的变革。Axure,作为设计界知名的原型设计工具,以其强大的功能和灵活的操作性&…...
[LeetCode] day19 454. 四数相加 II
题目链接 题目描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 < i, j, k, l < n nums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1: 输入&…...
FPGA开发技能(10)热电偶测温ADS1118方案
文章目录 1.热电偶原理2.ADS1118方案2.1ADS介绍2.2原理设计2.3实物连接图2.4测温原理 3.误差校准3.1查表法3.2冷端补偿法 4.SPI操作时序5.传送门 1.热电偶原理 两个不同材料的金属线一端在同一结点连接,另一端放在被测温点,则二者会产生一定的压差&…...
CNN-day5-经典神经网络LeNets5
经典神经网络-LeNets5 1998年Yann LeCun等提出的第一个用于手写数字识别问题并产生实际商业(邮政行业)价值的卷积神经网络 参考:论文笔记:Gradient-Based Learning Applied to Document Recognition-CSDN博客 1 网络模型结构 …...
【DeepSeek学Cuda】NVidia GPU指令集架构-Load和Cache
https://zhuanlan.zhihu.com/p/692445145 当warp内的线程访问同一个constant位置时,其是确定的latency的(和访问寄存器一样) latency 什么意思 当 warp 内的线程访问同一个 constant 位置时,其是确定的 latency 的(和…...
[免费]Springboot+Vue(带推荐算法)网上购物商城系统【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的SpringbootVue(带推荐算法)网上购物商城系统,分享下哈。 项目视频演示 【免费】SpringbootVue(带推荐算法)网上购物商城系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 根据需求分析文档确定的…...
车载测试工具 --- CANoe VH6501 进行Not Acknowledge (NAck) 测试
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…...
JVM调优参数分类
JVM调优参数分类 一、内存管理参数(堆/非堆) 1. 堆内存设置 参数格式功能说明典型场景值记忆口诀-Xms初始堆大小-Xms4gXms起始大小-Xmx最大堆大小-Xmx8gXmx最大上限-Xmn年轻代大小-Xmn2gXmn年轻代-XX:NewRatio老年代与年轻代比例-XX:NewRatio2比例老/新…...
高阶C语言|枚举与联合
💬 欢迎讨论:在阅读过程中有任何疑问,欢迎在评论区留言,我们一起交流学习! 👍 点赞、收藏与分享:如果你觉得这篇文章对你有帮助,记得点赞、收藏,并分享给更多对C语言感兴…...
通过魔搭社区本地下载大语言模型及API接口调用模型实现
一、背景 在之前的博文:CSDN中,我们已经详细介绍了如何安装Python环境和一些必要的库和访问Transformers库的大模型。然而,在实际操作过程中,我们发现模型的下载或者调用需要访问Hugging Face上的Transformers库,这是一个国外的网…...
2022java面试总结,1000道(集合+JVM+并发编程+Spring+Mybatis)的Java高频面试题
1、面试题模块汇总 面试题包括以下十九个模块: Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示…...
【CubeMX+STM32】SD卡 文件系统读写 FatFs+SDIO+DMA
本篇,将使用CubeMXKeil,创建一个SD卡的 FatFSSDIODMA 文件系统读写工程。 目录 一、简述 二、CubeMX 配置 FatFSSDIO DMA 三、Keil 编辑代码 四、实验效果 实现效果,如下图: 一、简述 上两篇,已循序渐进讲解了SD、…...
GenAI + 电商:从单张图片生成可动态模拟的3D服装
在当今数字化时代,电子商务和虚拟现实技术的结合正在改变人们的购物体验。特别是在服装行业,消费者越来越期待能够通过虚拟试衣来预览衣服的效果,而无需实际穿戴。Dress-1-to-3 技术框架正是为此而生,它利用生成式AI模型(GenAI)和物理模拟技术,将一张普通的穿衣照片转化…...
1.1 Spring Security 概述
Spring Security 概述 1. 什么是 Spring Security? Spring Security 是 Spring 生态中专注于应用安全的核心框架,为 Java 企业应用提供认证(Authentication)、授权(Authorization)以及安全攻击防护&#x…...
新站如何快速被搜索引擎收录?
本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/106.html 新站快速被搜索引擎收录是一个综合性的任务,涉及多个方面的优化工作。以下是一些关键步骤和策略,有助于新站快速被搜索引擎收录: 一、提交网站…...
<论文>DeepSeek-R1:通过强化学习激励大语言模型的推理能力(深度思考)
一、摘要 本文跟大家来一起阅读DeepSeek团队发表于2025年1月的一篇论文《DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning | Papers With Code》,新鲜的DeepSeek-R1推理模型,作者规模属实庞大。如果你正在使用Deep…...
DatePicker 实现:日期范围截止时间为23:59:59
文章目录 需求描述实现逻辑 需求描述 在使用 Element Plus 的 el-date-picker 组件进行日期范围选择时,如果你希望选择的日期范围截止时间为所选时间的23:59:59,你可以通过设置 type 属性为 daterange,并结合使用 value-format 属性来控制时间…...
登录功能login.html
文章目录 前言一、login.html二、getVerify()controllerlogin() 登录功能encodePwd(pwd,key)login.do验证是否异地登录找回账号verifySubmit() 前言 登录login.html,验证码获取verifycode,登陆函数login() 一、login.html <!DOCTYPE html> <h…...
将 AMD Zynq™ RFSoC 扩展到毫米波领域
目录 将 AMD Zynq™ RFSoC 扩展到毫米波领域Avnet XRF RFSoC 系统级模块适用于 MATLAB 的 Avnet RFSoC Explorer 工具箱5G mmWave PAAM 开发平台突破性的宽带毫米波波束成形特征:OTBF103 Mathworks Simulink 模型优化毫米波应用中的射频信号路径 用于宽带毫米波上/下…...
2.10..
#include "widget.h" #include "ui_widget.h" #include <QFontDialog> #include <QFont> #include <QMessageBox> #include <QColorDialog> #include <QColor> // #include <QFileDialog> //文件对话框…...
Struts2 命令执行漏洞 S2-045 复现:深入剖析与实战演练
前言 在当今网络安全形势日益严峻的大环境下,Web 应用框架的安全问题始终是信息安全领域关注的焦点。Struts2 作为一款广泛应用于 Java Web 开发的开源框架,其安全性直接关系到众多 Web 应用的稳定运行。今天,我们将深入探讨并实战复现 Stru…...
Spark 源码 | 脚本分析总结
前言 最初是想学习一下Spark提交流程的源码,比如 Spark On Yarn 、Standalone。之前只是通过网上总结的文章大概了解整体的提交流程,但是每个文章描述的又不太一样,弄不清楚到底哪个说的准确,比如Client 和 CLuster 模式的区别&a…...
2025.2.9 每日学习记录2:技术报告写了一半+一点点读后感
0.近期主任务线 1.完成小论文准备 目标是3月份完成实验点1的全部实验和论文。 2.准备教资笔试 打算留个十多天左右,一次性备考笔试的三个科目 1.实习申请技术准备:微调、Agent、RAG 1.今日完成任务 1.电子斗蛐蛐(文本书写领域&am…...
6、使用one-api管理统一管理大模型,并开始使用本地大模型
文章目录 本节内容介绍集中接入:将大模型统一管理起来当使用了大模型代理大模型代理示例 开源模型:如何使用Hugging Face上的模型modelscope使用 pipeline 调用模型用底层实现调用模型流式输出 如何在项目中使用开源模型使用 LangChain使用集中接入开始使…...
DFS+回溯+剪枝(深度优先搜索)——搜索算法
DFS也就是深度优先搜索,比如二叉树的前,中,后序遍历都属于DFS。其本质是递归,要学好DFS首先需要掌握递归。接下来咱们就一起来学习DFS涉及的算法。 一、递归 1.什么是递归? 递归可以这样理解把它拆分出来࿰…...
【数据结构】_堆的实现
目录 1. 堆的实现 1.1 Heap.h 1.2 Heap.c 1.3 Test_Heap.c 专栏前文中,已经介绍了入堆及向上调整算法,出堆及向下调整算法,详情见下文: 【数据结构】_堆的结构及向上、向下调整算法-CSDN博客文章浏览阅读352次,点…...
读书笔记《左耳听风》
读书笔记《左耳听风》 从今年开始,打算给自己定一下在看完书后整理成博客的计划。以往很多看完的书仅仅停留在看完,再回顾的时候总感觉已经不甚清晰了,希望能坚持下去。 《左耳听风》是今年我看完的第一本书,内容针对的是程序员…...
Axure原型图怎么通过链接共享
一、进入Axure 二、点击共享 三、弹出下面弹框,点击发布就可以了 发布成功后,会展示链接,复制即可共享给他人 四、发布失败可能的原因 Axure未更新,首页菜单栏点击帮助选择Axure更新,完成更新重复以上步骤即可...
本地部署DeepSeek,并使用UI界面进行快速交互
一.需要本地部署的原因 1.我们在deepseek的官网界面进行交互时,经常会出现如下问题,不能正常交互,很是困扰: 2.本地部署的好处 就是能够很流畅的与deepseek进行交互;也有缺点,现在官网交互的版本更高一点…...
ESP32S3读取数字麦克风INMP441的音频数据
ESP32S3 与 INMP441 麦克风模块的集成通常涉及使用 I2S 接口进行数字音频数据的传输。INMP441 是一款高性能的数字麦克风,它通过 I2S 接口输出音频数据。在 Arduino 环境中,ESP32S3 的开发通常使用 ESP-IDF(Espressif IoT Development Framew…...