要求调高德地图根据经纬度返回详细地址,服务器不能访问外网,只能通过前台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传到后台有有"不知道是空格还是其他原因,要去掉datas.replaceAll(""", "\""),
由于传的数据比较多,快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; } }