Commit 1d030e23 by Guojunfeng

添加天地图转换源,以及给代码补充注释

parent 2c1cf78b
......@@ -6,25 +6,27 @@ import org.springframework.web.client.RestTemplate;
public class addressDNSUtil {
private static final String BAIDU_AK = "cYfcu0CsGGNIl9GnfwUvGBjdiQDoMsGL";
private static final String GAODE_AK = "3866dcd12908db106e73b8f2e75ef3e3";
// private static final String GAODE_AK = "3866dcd12908db106e73b8f2e75ef3e3";
private static final String GAODE_AK = "d00bbe32ceb96d23fd8847c1efdfc65e";
private static final String TENGXUN_AK = "63GBZ-ADNWX-I564B-765QB-QEMW6-EXFOY";
private static final String TIANDITU_AK = "8890c68b649af2c52d04e0d6b28f6003";
//type标识正向反向. geo是正向,regeo是反向。
//source 表示调用百度还是高德,高德用gaode,百度用baidu,
//source 表示调用百度还是高德,高德用gaode,百度用baidu,天地图用tianditu,
//正向需要参数address,使用|分割,
//反向需要参数location,使用|分割,
//这里一开始没定好方向,经纬度整一块了,对性能损耗不大,不修改。
public static JSONObject getGeo(String type, String source, String address, String location){
public static JSONObject getGeo(String type, String source, String address, String location) {
RestTemplate restTemplate = new RestTemplate();
JSONObject responseJO = new JSONObject();
//正向 ---使用address
if("geo".equals(type)){
if ("geo".equals(type)) {
//来源是百度---百度无法一次性批量,使用循环查询再拼装结果。
if("baidu".equals(source)){
if ("baidu".equals(source)) {
String[] addressList;
if(address.contains("|")){//查询多个
if (address.contains("|")) {//查询多个
addressList = address.split("\\|");
}else{//查询一个
} else {//查询一个
addressList = new String[1];
addressList[0] = address;
}
......@@ -33,7 +35,7 @@ public class addressDNSUtil {
JSONObject queryJO;//这里不new,减少JVM垃圾回收。
for(int i = 0;i < addressList.length;i ++){
for (int i = 0; i < addressList.length; i++) {
JSONObject addJO = new JSONObject();
url.append("http://api.map.baidu.com/geocoding/v3/?address=");
url.append(addressList[i]);
......@@ -45,23 +47,23 @@ public class addressDNSUtil {
queryJO = (JSONObject) JSONObject.parseObject(result).get("result");
addJO.put("formatted_address", addressList[i]);
//0是百度正向解析成功。
if(JSONObject.parseObject(result).getIntValue("status") == 0){
if (JSONObject.parseObject(result).getIntValue("status") == 0) {
queryJO = (JSONObject) queryJO.get("location");
StringBuffer latlng = new StringBuffer(queryJO.getString("lng"));
latlng.append(",").append(queryJO.getString("lat"));
addJO.put("location", latlng);
}else {
} else {
addJO.put("location", "");
}
jsonArray.add(addJO);
url.delete(0 ,url.length());
url.delete(0, url.length());
}
responseJO.put("status", 200);
responseJO.put("geocodes", jsonArray);
return responseJO;
}
if("gaode".equals(source)){
if ("gaode".equals(source)) {
StringBuffer url = new StringBuffer("https://restapi.amap.com/v3/geocode/geo?address=");
url.append(address);
url.append("&output=json&key=").append(GAODE_AK);
......@@ -69,13 +71,42 @@ public class addressDNSUtil {
String result = restTemplate.getForObject(url.toString(), String.class);
System.out.println(result);
responseJO = JSONObject.parseObject(result);
if("1".equals(responseJO.getString("status"))){
if ("1".equals(responseJO.getString("status"))) {
responseJO.put("status", 200);
}
return responseJO;
}
if("tengxun".equals(source)){//不支持批量,这里也不进行批量,只查一个。
if ("tianditu".equals(source)) {
StringBuffer url = new StringBuffer("http://api.tianditu.gov.cn/geocoder?ds=");
String json = "{\"keyWord\":\""+address+"\"}";
url.append("{json}");
url.append("&tk=").append(TIANDITU_AK);
String result = restTemplate.getForObject(url.toString(), String.class,json);
System.out.println(result);
JSONObject resultJson = JSONObject.parseObject(result);
//获得状态码
String status = resultJson.getString("status");
//若转换成功
if ("0".equals(status)) {
responseJO.put("status", 200);
JSONObject locationJson = resultJson.getJSONObject("location");
//获得经纬度
String lon = locationJson.getString("lon");
String lat = locationJson.getString("lat");
//拼接经纬度
StringBuffer latlng = new StringBuffer(lon);
latlng.append(",").append(lat);
//返回值格式为jsonArray,此处拼json放入json数组
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject = new JSONObject();
jsonObject.put("formatted_address", address);
jsonObject.put("location", latlng);
jsonArray.add(jsonObject);
responseJO.put("geocodes", jsonArray);
}
return responseJO;
}
if ("tengxun".equals(source)) {//不支持批量,这里也不进行批量,只查一个。
StringBuffer url = new StringBuffer("https://apis.map.qq.com/ws/geocoder/v1/?address=");
url.append(address);
url.append("&output=json&key=").append(TENGXUN_AK);
......@@ -84,7 +115,7 @@ public class addressDNSUtil {
responseJO = JSONObject.parseObject(result);
JSONArray jsonArray = new JSONArray();
JSONObject queryJO;
if(0 ==(responseJO.getIntValue("status"))){
if (0 == (responseJO.getIntValue("status"))) {
responseJO.put("status", 200);
queryJO = (JSONObject) ((JSONObject) responseJO.get("result")).get("location");
StringBuffer latlng = new StringBuffer(queryJO.getString("lng"));
......@@ -98,16 +129,15 @@ public class addressDNSUtil {
}
}
//反向
if("regeo".equals(type)){
if ("regeo".equals(type)) {
//来源是百度
if("baidu".equals(source)){
if ("baidu".equals(source)) {
String[] locationList;
if(location.contains("|")){//查询多个
if (location.contains("|")) {//查询多个
locationList = location.split("\\|");
}else{//查询一个
} else {//查询一个
locationList = new String[1];
locationList[0] = location;
}
......@@ -116,7 +146,7 @@ public class addressDNSUtil {
JSONObject queryJO;//这里不new,减少JVM垃圾回收。
for(int i = 0;i < locationList.length;i ++){
for (int i = 0; i < locationList.length; i++) {
JSONObject addJO = new JSONObject();
url.append("http://api.map.baidu.com/reverse_geocoding/v3/?coordtype=wgs84ll&ak=");
url.append(BAIDU_AK);
......@@ -126,14 +156,15 @@ public class addressDNSUtil {
System.out.println(url);
queryJO = (JSONObject) JSONObject.parseObject(result).get("result");
addJO.put("location", locationList[i]);
//0是百度正向解析成功。
if(JSONObject.parseObject(result).getIntValue("status") == 0 && ! "".equals(queryJO.getString("formatted_address"))){
//0是百度解析成功。
if (JSONObject.parseObject(result).getIntValue("status") == 0 && !"".equals(queryJO.getString(
"formatted_address"))) {
addJO.put("formatted_address", queryJO.getString("formatted_address"));
}else {
} else {
addJO.put("formatted_address", "无效地址");
}
jsonArray.add(addJO);
url.delete(0 ,url.length());
url.delete(0, url.length());
}
responseJO.put("status", 200);
responseJO.put("regeocodes", jsonArray);
......@@ -141,20 +172,58 @@ public class addressDNSUtil {
return responseJO;
}
if("gaode".equals(source)){
StringBuffer url = new StringBuffer("https://restapi.amap.com/v3/geocode/regeo?extensions=base&output=json&key=");
//高德反向
if ("gaode".equals(source)) {
StringBuffer url = new StringBuffer("https://restapi.amap.com/v3/geocode/regeo?extensions=base&output" +
"=json&key=");
url.append(GAODE_AK);
url.append("&location=").append(location);
url.append("&batch=").append("true");
String result = restTemplate.getForObject(url.toString(), String.class);
responseJO = JSONObject.parseObject(result);
if("1".equals(responseJO.getString("status"))){
if ("1".equals(responseJO.getString("status"))) {
responseJO.put("status", 200);
}
return responseJO;
}
if("tengxun".equals(source)){//不支持批量,这里也不进行批量,只查一个。
//天地图反向
if ("tianditu".equals(source)) {
//此处完整的url格式为:
// http://api.tianditu.gov.cn/geocoder?postStr={'lon':116.311469,'lat':39.94199864,'ver':1}&type=geocode&tk=8890c68b649af2c52d04e0d6b28f6003
//{}为占位符,需将{}里的值传入restTemplate.getForObject的第三个参数
try {
Thread.sleep(400);
} catch (InterruptedException e) {
e.printStackTrace();
}
StringBuffer url = new StringBuffer("http://api.tianditu.gov.cn/geocoder?postStr=");
String json = "{"+location+",\"ver\":1}";
url.append("{json}");
url.append("&type=").append("geocode");
url.append("&tk=").append(TIANDITU_AK);
// String json = "{\"lon\":116.311469,\"lat\":39.94199864,\"ver\":1}";
// String url = "http://api.tianditu.gov.cn/geocoder?postStr={json}&type=geocode&tk=8890c68b649af2c52d04e0d6b28f6003";
String result = restTemplate.getForObject(url.toString(), String.class,json);
JSONArray jsonArray = new JSONArray();
JSONObject addJO = new JSONObject();
JSONObject queryJO = JSONObject.parseObject(result);
String status = queryJO.getString("status");
JSONObject jsonObject = queryJO.getJSONObject("result");
String formatted_address = jsonObject.getString("formatted_address");
//0是天地图解析成功
if ("0".equals(status) && !"".equals(formatted_address)) {
addJO.put("formatted_address", formatted_address);
} else {
addJO.put("formatted_address", "无效地址");
}
//如果将status和regeocodes放在此处,必定不会进入下一次数据源转换,因为必定200且有值
jsonArray.add(addJO);
responseJO.put("status", 200);
responseJO.put("regeocodes", jsonArray);
return responseJO;
}
//腾讯反向
if ("tengxun".equals(source)) {//不支持批量,这里也不进行批量,只查一个。
StringBuffer url = new StringBuffer("https://apis.map.qq.com/ws/geocoder/v1/?location=");
url.append(location);
url.append("&output=json&key=");
......@@ -166,10 +235,11 @@ public class addressDNSUtil {
JSONObject addJO = new JSONObject();
JSONObject queryJO = (JSONObject) JSONObject.parseObject(result).get("result");
addJO.put("location", location);
//0是百度正向解析成功。
if(JSONObject.parseObject(result).getIntValue("status") == 0 && ! "".equals(queryJO.getString("formatted_address"))){
//0是腾讯解析成功。
if (JSONObject.parseObject(result).getIntValue("status") == 0 && !"".equals(queryJO.getString(
"formatted_address"))) {
addJO.put("formatted_address", queryJO.getString("address"));
}else {
} else {
addJO.put("formatted_address", "无效地址");
}
jsonArray.add(addJO);
......@@ -177,10 +247,6 @@ public class addressDNSUtil {
responseJO.put("regeocodes", jsonArray);
return responseJO;
}
}
//请求参数错误。
responseJO.put("status", 400);
......
......@@ -6,7 +6,6 @@ import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import fwj.controller.kyPersonController;
import fwj.entity.tranLngLat;
import org.springframework.util.StringUtils;
......@@ -18,19 +17,35 @@ import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
/**
* 在该类中的invoke方法中控制使用哪种数据源进行正逆向地理编码
*/
public class addressLocationListener extends AnalysisEventListener<tranLngLat> {
List<tranLngLat> lnglatList = new ArrayList<>(1000);
HttpServletResponse response;
String fileName;
boolean isEightFour;
public addressLocationListener(HttpServletResponse response, String fileName,boolean isEightFour){
/**
* 构造方法用于初始化
*
* @param response
* @param fileName
* @param isEightFour
*/
public addressLocationListener(HttpServletResponse response, String fileName, boolean isEightFour) {
this.fileName = fileName;
this.response = response;
this.isEightFour = isEightFour;
}
DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
/**
* 每解析一行会回调invoke()方法。
* 整个excel解析结束会执行doAfterAllAnalysed()方法
*/
@Override
public void invoke(tranLngLat tranlnglat, AnalysisContext analysisContext) {
JSONObject jo = new JSONObject();
......@@ -39,7 +54,9 @@ public class addressLocationListener extends AnalysisEventListener<tranLngLat> {
} catch (InterruptedException e) {
e.printStackTrace();
}*/
if(! StringUtils.isEmpty(tranlnglat.getAddress())){
//标准地址不为空,调用地理编码接口
if (!StringUtils.isEmpty(tranlnglat.getAddress())) {
/*if("tengxun".equals(source)){
try {//腾讯的因为每秒并发5个,所以使用线程阻塞
Thread.sleep(200);
......@@ -59,24 +76,23 @@ public class addressLocationListener extends AnalysisEventListener<tranLngLat> {
kyPersonController.gaode_geoNum = + 1;
}*/
// tranlnglat = myGeoProcesster(jo, tranlnglat, "tianditu", isEightFour);
tranlnglat = myGeoProcesster(jo, tranlnglat, "gaode", isEightFour);
if(tranlnglat.getHasSuccess() == 0){
if (tranlnglat.getHasSuccess() == 0) {
tranlnglat = myGeoProcesster(jo, tranlnglat, "baidu", isEightFour);
if(tranlnglat.getHasSuccess() == 0){
if (tranlnglat.getHasSuccess() == 0) {
tranlnglat = myGeoProcesster(jo, tranlnglat, "tengxun", isEightFour);
if (tranlnglat.getHasSuccess() == 0) {
tranlnglat = myGeoProcesster(jo, tranlnglat, "tianditu", isEightFour);
}
}
/* tranlnglat = myGeoProcesster(jo, tranlnglat, "tengxun");
if(tranlnglat.getHasSuccess() == 0){
tranlnglat = myGeoProcesster(jo, tranlnglat, "baidu");
if(tranlnglat.getHasSuccess() == 0){
tranlnglat = myGeoProcesster(jo, tranlnglat, "gaode");
}
}*/
lnglatList.add(tranlnglat);
}else {
System.out.println( "有经纬度转 " + tranlnglat.getId() );
} else {
//有经纬度,调用逆地理编码接口
System.out.println("有经纬度转 " + tranlnglat.getId());
/*if("tengxun".equals(source)){
......@@ -104,34 +120,44 @@ public class addressLocationListener extends AnalysisEventListener<tranLngLat> {
/* jo = addressDNSUtil.getGeo("regeo", source, "", sb.toString());
System.out.println(JSONObject.toJSONString(jo));
if(jo.getIntValue("status") == 200 && (JSONArray) jo.get("regeocodes") != null && ((JSONArray) jo.get("regeocodes")).size() > 0){
if(jo.getIntValue("status") == 200 && (JSONArray) jo.get("regeocodes") != null && ((JSONArray) jo.get
("regeocodes")).size() > 0){
String a = ((JSONObject) ((JSONArray) jo.get("regeocodes")).get(0)).getString("formatted_address");
tranlnglat.setAddress(a);
}*/
/**
* 默认先调用gaode来源,每次调用成功后会把hasSuccess设置为1,则不会继续调用,反之一个个来源调用
*/
// tranlnglat = myReGeoProcesster(jo, tranlnglat, "gaode");
// if (tranlnglat.getHasSuccess() == 0) {
// tranlnglat = myReGeoProcesster(jo, tranlnglat, "baidu");
// if (tranlnglat.getHasSuccess() == 0) {
// tranlnglat = myReGeoProcesster(jo, tranlnglat, "tengxun");
//
// }
// }
// tranlnglat = myReGeoProcesster(jo, tranlnglat, "tianditu");
tranlnglat = myReGeoProcesster(jo, tranlnglat, "gaode");
if(tranlnglat.getHasSuccess() == 0){
if (tranlnglat.getHasSuccess() == 0) {
tranlnglat = myReGeoProcesster(jo, tranlnglat, "baidu");
if(tranlnglat.getHasSuccess() == 0){
if (tranlnglat.getHasSuccess() == 0) {
tranlnglat = myReGeoProcesster(jo, tranlnglat, "tengxun");
if (tranlnglat.getHasSuccess() == 0) {
tranlnglat = myReGeoProcesster(jo, tranlnglat, "tianditu");
}
}
/* tranlnglat = myReGeoProcesster(jo, tranlnglat, "tengxun");
if(tranlnglat.getHasSuccess() == 0){
tranlnglat = myReGeoProcesster(jo, tranlnglat, "baidu");
if(tranlnglat.getHasSuccess() == 0){
tranlnglat = myReGeoProcesster(jo, tranlnglat, "gaode");
}
}*/
//并发量高的时候,腾讯的会丢失,这里返回原本数据不处理。
lnglatList.add(tranlnglat);
}
}
@Override
......@@ -142,13 +168,15 @@ public class addressLocationListener extends AnalysisEventListener<tranLngLat> {
myFile.delete();
}
EasyExcel.write(fileName, idLocation.class).sheet("Sheet1").doWrite(idLocationList);*/
//拿到原本文件名传入downLoadExcel方法
downLoadExcel(fileName);
}
private void downLoadExcel(String fileName) {
try {
//输出新文件,拼接新文件名
LocalDateTime localDateTime = LocalDateTime.now();
fileName = fileName.split("\\.")[0]
.concat(dtf2.format(localDateTime))
......@@ -157,11 +185,14 @@ public class addressLocationListener extends AnalysisEventListener<tranLngLat> {
response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") );
if(fileName.toLowerCase().contains("xls")){
EasyExcel.write(response.getOutputStream(), tranLngLat.class).excelType(ExcelTypeEnum.XLS).sheet("Sheet1").doWrite(lnglatList);
}else {
EasyExcel.write(response.getOutputStream(), tranLngLat.class).excelType(ExcelTypeEnum.XLSX).sheet("Sheet1").doWrite(lnglatList);
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
//原本是xls则输出xls,原本是xlsx则输出xlsx
if (fileName.toLowerCase().contains("xls")) {
EasyExcel.write(response.getOutputStream(), tranLngLat.class).excelType(ExcelTypeEnum.XLS).sheet(
"Sheet1").doWrite(lnglatList);
} else {
EasyExcel.write(response.getOutputStream(), tranLngLat.class).excelType(ExcelTypeEnum.XLSX).sheet(
"Sheet1").doWrite(lnglatList);
}
......@@ -171,83 +202,88 @@ public class addressLocationListener extends AnalysisEventListener<tranLngLat> {
}
private tranLngLat myGeoProcesster( JSONObject jo, tranLngLat mytll, String source, boolean isEightFour){
private tranLngLat myGeoProcesster(JSONObject jo, tranLngLat mytll, String source, boolean isEightFour) {
jo = addressDNSUtil.getGeo("geo", source, mytll.getAddress(), "");
System.out.println(source + "调用 " + JSONObject.toJSONString(jo));
if(jo.getIntValue("status") == 200 && (JSONArray) jo.get("geocodes") != null && ((JSONArray) jo.get("geocodes")).size() > 0){
if (jo.getIntValue("status") == 200 && (JSONArray) jo.get("geocodes") != null && ((JSONArray) jo.get(
"geocodes")).size() > 0) {
String location = ((JSONObject) ((JSONArray) jo.get("geocodes")).get(0)).getString("location");
if("tengxun".equals(source)){
if ("tengxun".equals(source)) {
mytll.setSource("腾讯");
if(location.contains(",")){
if(isEightFour){//需要转换为84坐标
double [] myD = LngLonUtil.gcj02_To_Gps84(Double.valueOf(location.split(",")[1]), Double.valueOf(location.split(",")[0]));
if (location.contains(",")) {
if (isEightFour) {//需要转换为84坐标
//需传入lat,lon,返回0是lat,1是lon
double[] myD = LngLonUtil.gcj02_To_Gps84(Double.valueOf(location.split(",")[1]),
Double.valueOf(location.split(",")[0]));
mytll.setLng(String.valueOf(myD[1]));
mytll.setLat(String.valueOf(myD[0]));
}else{
} else {
//location的0是lon,1是lat
mytll.setLng(location.split(",")[0]);
mytll.setLat(location.split(",")[1]);
}
}
}else if("gaode".equals(source)){
} else if ("gaode".equals(source)) {
mytll.setSource("高德");
if(location.contains(",")){
if(isEightFour){//需要转换为84坐标
double [] myD = LngLonUtil.gcj02_To_Gps84(Double.valueOf(location.split(",")[1]), Double.valueOf(location.split(",")[0]));
if (location.contains(",")) {
if (isEightFour) {//需要转换为84坐标
double[] myD = LngLonUtil.gcj02_To_Gps84(Double.valueOf(location.split(",")[1]),
Double.valueOf(location.split(",")[0]));
mytll.setLng(String.valueOf(myD[1]));
mytll.setLat(String.valueOf(myD[0]));
}else{
} else {
mytll.setLng(location.split(",")[0]);
mytll.setLat(location.split(",")[1]);
}
}
}else if("baidu".equals(source)) {
} else if ("baidu".equals(source)) {
mytll.setSource("百度");
if(location.contains(",")){
if(isEightFour){//需要转换为84坐标
double [] myD = LngLonUtil.bd09_To_gps84(Double.valueOf(location.split(",")[1]), Double.valueOf(location.split(",")[0]));
if (location.contains(",")) {
if (isEightFour) {//需要转换为84坐标
double[] myD = LngLonUtil.bd09_To_gps84(Double.valueOf(location.split(",")[1]),
Double.valueOf(location.split(",")[0]));
mytll.setLng(String.valueOf(myD[1]));
mytll.setLat(String.valueOf(myD[0]));
}else{
} else {
mytll.setLng(location.split(",")[0]);
mytll.setLat(location.split(",")[1]);
}
}
} else if ("tianditu".equals(source)) {
//天地图的坐标系就是CGCS2000,不需要转坐标系
mytll.setSource("天地图");
if (location.contains(",")) {
mytll.setLng(location.split(",")[0]);
mytll.setLat(location.split(",")[1]);
}
}
mytll.setHasSuccess(1);
}else{
} else {
mytll.setHasSuccess(0);
}
return mytll;
}
private tranLngLat myReGeoProcesster( JSONObject jo, tranLngLat mytll, String source){
private tranLngLat myReGeoProcesster(JSONObject jo, tranLngLat mytll, String source) {
//这里希望是线程安全的。
//这里的else好像没意义,因为当所有情况调用完还是没结果返回,invoke()方法中的多重if条件判断已经调用完-20220613
StringBuilder sb = new StringBuilder();
if("tengxun".equals(source)){
if ("tengxun".equals(source)) {
mytll.setSource("腾讯");
sb.append(mytll.getLat()).append(",").append(mytll.getLng());
}else if("gaode".equals(source)){//高德地址反向,先传经度后维度
} else if ("gaode".equals(source)) {//高德地址反向,先传经度后维度
mytll.setSource("高德");
sb.append(mytll.getLng()).append(",").append(mytll.getLat());
}else if("baidu".equals(source)) {
} else if ("baidu".equals(source)) {
mytll.setSource("百度");
sb.append(mytll.getLat()).append(",").append(mytll.getLng());
}else {
} else if ("tianditu".equals(source)) {//天地图反向,先传经度后纬度
mytll.setSource("天地图");
sb.append("\"lon\":").append(mytll.getLng()).append(",\"lat\":").append(mytll.getLat());
} else {
sb.append(mytll.getLat()).append(",").append(mytll.getLng());
mytll.setSource("高德");
}
......@@ -255,11 +291,13 @@ public class addressLocationListener extends AnalysisEventListener<tranLngLat> {
jo = addressDNSUtil.getGeo("regeo", source, "", sb.toString());
System.out.println(JSONObject.toJSONString(jo));
if(jo.getIntValue("status") == 200 && (JSONArray) jo.get("regeocodes") != null && ((JSONArray) jo.get("regeocodes")).size() > 0){
if (jo.getIntValue("status") == 200 && (JSONArray) jo.get("regeocodes") != null && ((JSONArray) jo.get(
"regeocodes")).size() > 0) {
String a = ((JSONObject) ((JSONArray) jo.get("regeocodes")).get(0)).getString("formatted_address");
mytll.setAddress(a);
//该值用于控制停止进入下一地图源转换
mytll.setHasSuccess(1);
}else{
} else {
mytll.setHasSuccess(0);
}
return mytll;
......
......@@ -10,5 +10,9 @@ spring.mvc.favicon.enabled=false
spring.mvc.static-path-pattern=/**
spring.resources.static-locations=classpath:/webapp/
#ȲЧ
#\uFFFD\u0232\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0427
spring.devtools.restart.enabled=true
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
......@@ -106,7 +106,9 @@
})
/**
* 判断文件路径是否正确
*/
function doSaveBg() {
var localPath = $("#fileName1").val();
var a = $("#isEF").prop("checked");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment