经纬度解析地址传到后台

高德地图逆地理编码实践

要求调高德地图根据经纬度返回详细地址,服务器不能访问外网,只能通过前台ajax请求高德地图,然后传到后台

1.调高德逆地理解析api,存到datass集合里

var urlgd="https://restapi.amap.com/v3/geocode/regeo?output=json&key=花钱买key!aa538e8ab3e968bc37f4a5f&" +
		 		"location=" +allstrlocation+"&radius=0&batch=true";
		 
		 $.ajax({  
			    type : "get",
			    url : urlgd,  
			    data : null,  
			  //  dataType: "json",
			    async : false,//取消异步  
			    success : function(data){ 
			    	 var tabledata=data.regeocodes;
					 var v = new Array();
					 for(var k=0;k<tabledata.length;k++){
						 v[k]=k;
						var tablecloum=tabledata[k].addressComponent;
						var shengfen=tablecloum.province;
						var chengshi=tablecloum.city;
						var dizhi=tablecloum.township+tablecloum.streetNumber.street+tablecloum.streetNumber.number;
						if(""==chengshi||null==chengshi){
							chengshi=shengfen;
							shengfen=shengfen.replace("市", "");
						}
						var datas={"PROVINCE":shengfen,"CITY":chengshi,"ADDRESS":chengshi,
								"LONGITUDE":objalllist[k].longitude,"LATITUDE":objalllist[k].latitude,"VIN":objalllist[k].vin}
						 var data_opt = {
	  							vins: objalllist[k].vin,
	  							jindus: objalllist[k].longitude,
	  							weidus:objalllist[k].latitude,
	  							datetm:"",
	  							provice:shengfen,
	  							city:chengshi,
	  							address: dizhi,
	  							locatedtime:objalllist[k].locatedtime
	  					};
						datass.push(data_opt);
					 }
			    }  
			}); 
}

2.把datass传到后台,说下坑人的地方,

自己拼接json传到后台有有&quot;不知道是空格还是其他原因,要去掉datas.replaceAll("&quot;", "\""),

由于传的数据比较多,快1M了,框架没配好服务器接收不了,后来只得限制数据量,或者用其他方式(都是服务不能访问外网引起的艹),这里我用form post提交,

var jsonData =JSON.stringify(datass);
		$("input[name=datas]").val(jsonData);
		$("input[name=startdates]").val(startdate);
		$("input[name=enddates]").val(enddate);
		
		$("form[name=operationframeFile]").submit();
<form name="operationframeFile" action="${contextPath}/xxx" method="post" style="display:none;" target="dom_click" >
 	<input type="hidden"  name="${_csrf.parameterName}" value="${_csrf.token}"/>
 	<input type ="hidden" name="datas" value="">
 	<input type ="hidden" name="startdates" value="">
 	<input type ="hidden" name="enddates" value="">
 </form>




3.接收和解析
@RequestMapping("xxx")
	public void downNewestPosition(HttpServletResponse response, HttpServletRequest request,
			@RequestParam(value="startdates",defaultValue="",required=false)String startdates,
			@RequestParam(value="enddates",defaultValue="",required=false)String enddates,
			String datas,String _csrf) throws ParseException {
		
		datas=datas.replaceAll(""", "\"");
		datas="{\"datalist\":"+datas+"}";
		GaodenizhuanDto dto=JsonUtil.getEntity(datas,GaodenizhuanDto.class);



import java.io.Serializable;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

@JsonIgnoreProperties(ignoreUnknown = true)
public class GaodenizhuanDto implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@JsonProperty("datalist")
	public List<GaodenizhuansDto> datalist;

	public List<GaodenizhuansDto> getDatalist() {
		return datalist;
	}

	public void setDatalist(List<GaodenizhuansDto> datalist) {
		this.datalist = datalist;
	}


}



### UWB与GPS经纬度融合的技术实现 #### 1. 技术背景 UWB(超宽带)是一种短距离无线通信技术,具有高精度测距能力,通常应用于室内场景下的精确定位。而GPS则擅长于室外大范围的定位服务,能够提供全球范围内的经纬度坐标信息。然而,单一依赖这两种技术都存在局限性:GPS在室内或遮挡环境下性能较差,而UWB的应用范围受限于视距传播特性[^2]。 为了克服各自的缺点并提升整体定位效果,可以通过融合UWB和GPS的数据来构建一种混合定位系统。这种系统的目的是实现在多种环境下的无缝切换以及更高的定位精度。 --- #### 2. 数据融合方法概述 数据融合的核心在于如何有效地结合两种传感器的不同特点,形成统一的空间描述模型。以下是常见的几种融合策略: ##### (a) 基于卡尔曼滤波器的方法 卡尔曼滤波器是一种递推算法,适合处理多源异构数据流。它可以根据先验估计值及其不确定性动态调整权重分配给输入观测值。对于UWB和GPS来说: - **状态变量定义**:车辆/设备的位置向量 `[x, y, z]` 和速度向量 `[v_x, v_y, v_z]`。 - **测量方程设计**:分别引入GPS提供的经纬度转换后的平面直角坐标系位置 `(X_gps, Y_gps)` 及UWB测得的距离差 `Δd_uwb` 进行联合建模[^4]。 ```python import numpy as np from filterpy.kalman import KalmanFilter def initialize_kf(): kf = KalmanFilter(dim_x=6, dim_z=3) # 初始化状态矩阵 X=[pos_x,pos_y,pos_z,v_x,v_y,v_z]^T kf.x = np.array([0., 0., 0., 0., 0., 0.]) # 状态转移矩阵 F dt = 0.1 # 时间步长 kf.F = np.array([[1, 0, 0, dt, 0, 0], [0, 1, 0, 0, dt, 0], [0, 0, 1, 0, 0, dt], [0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1]]) # 测量函数 H kf.H = np.array([[1, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0]]) # 协方差矩阵 P 和噪声 Q/R 设置省略... return kf ``` ##### (b) 权重加权平均法 当两个独立子系统都能给出当前位置预测时,可采用简单的线性组合方式完成最终决策计算。设当前时刻 t 的 GPS 输出为 \(P_{gps}(t)\),UWB 结果为 \(P_{uwb}(t)\),那么综合结果表达如下: \[ P_f(t)=w \cdot P_{gps}+(1-w) \cdot P_{uwb}, w\in[0,1]\] 其中参数 w 表征信任程度差异,需依据实际测试情况灵活设定[^3]。 --- #### 3. 地图投影与坐标变换 由于GPS原始输出形式是以WGS84椭球面为基础定义的标准地理坐标体系——即经度(Lon)/纬度(Lat),因此需要将其映射到局部笛卡尔平面上以便后续运算操作更加便捷高效。常用的地图投影方法有UTM(Universal Transverse Mercator)分区投影等[^1]。 具体步骤包括但不限于以下几个方面: 1. 获取目标区域中心点作为参考原点; 2. 利用相应工具库执行正反算过程得到对应关系表; 3. 对新采集样本实施批量转化处理; Python 示例代码片段展示如下所示: ```python from pyproj import Proj, transform # 创建 WGS84 -> UTM Zone N 投影对象实例 utm_zone_north = 'EPSG:326{}'.format(zone_number) wgs84_proj = Proj(init='epsg:4326') # 输入 EPSG code for WGS84 utm_proj = Proj(init=utm_zone_north) lon, lat = (-73.994454, 40.750061) # Example coordinates near Times Square NYC easting, northing = transform(wgs84_proj, utm_proj, lon, lat) print(f"Easting={easting:.2f}, Northing={northing:.2f}") ``` --- #### 4. 应用案例分析 以某款支持 HTTP/MQTT 接口调用的商用级 GPS-UWB 融合定位服务平台为例说明其实战部署流程: - 用户端硬件配置含内置双频 GNSS 收发模块+外部天线阵列+若干固定安装节点标签; - 后台云端服务器负责接收前端上传来的原始采样序列并通过专用 SDK 解码解析成结构化JSON格式存储入库待查; - 开发者可通过 RESTful API 或 WebSocket 长连接机制订阅感兴趣事件通知消息推送; ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值