| 
														
															@@ -3,6 +3,7 @@ package com.skyversation.poiaddr.controller; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.skyversation.poiaddr.entity.FileDataDto; 
														 | 
														
														 | 
														
															 import com.skyversation.poiaddr.entity.FileDataDto; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.skyversation.poiaddr.entity.PoiAddress; 
														 | 
														
														 | 
														
															 import com.skyversation.poiaddr.entity.PoiAddress; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.skyversation.poiaddr.service.PoiAddressService; 
														 | 
														
														 | 
														
															 import com.skyversation.poiaddr.service.PoiAddressService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import com.skyversation.poiaddr.util.ExcelReaderUtils; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.skyversation.poiaddr.util.RequestUtils; 
														 | 
														
														 | 
														
															 import com.skyversation.poiaddr.util.RequestUtils; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.skyversation.poiaddr.util.fileTools.ReadFileData; 
														 | 
														
														 | 
														
															 import com.skyversation.poiaddr.util.fileTools.ReadFileData; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import lombok.extern.slf4j.Slf4j; 
														 | 
														
														 | 
														
															 import lombok.extern.slf4j.Slf4j; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -139,22 +140,22 @@ public class PoiAddressController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //          封装解析文件的参数 
														 | 
														
														 | 
														
															 //          封装解析文件的参数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //          TODO 文件数据解析 
														 | 
														
														 | 
														
															 //          TODO 文件数据解析 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            assert file != null; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             List<FileDataDto> fileDataDtoList = ReadFileData.ReadMultipartFile(file); 
														 | 
														
														 | 
														
															             List<FileDataDto> fileDataDtoList = ReadFileData.ReadMultipartFile(file); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //          TODO 补充FileDataDto中的搜索条件参数 
														 | 
														
														 | 
														
															 //          TODO 补充FileDataDto中的搜索条件参数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             for (FileDataDto fileDataDto : fileDataDtoList) { 
														 | 
														
														 | 
														
															             for (FileDataDto fileDataDto : fileDataDtoList) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //              搜索等级 
														 | 
														
														 | 
														
															 //              搜索等级 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 fileDataDto.setMatchingLevel(matchingLevel); 
														 | 
														
														 | 
														
															                 fileDataDto.setMatchingLevel(matchingLevel); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-//                set地名地址搜索字段 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//              TODO 数据过滤 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//              set地名地址搜索字段 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 Map<String, Object> properties = fileDataDto.getProperties(); 
														 | 
														
														 | 
														
															                 Map<String, Object> properties = fileDataDto.getProperties(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if (addr1Key != null && !addr1Key.isEmpty()) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (addr1Key != null && !addr1Key.isEmpty() && ExcelReaderUtils.isOtherDistrictThanQingpu(addr1Key)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     String address = "上海市青浦区" + properties.getOrDefault(addr1Key, "").toString().replace("青浦区", "").replace( 
														 | 
														
														 | 
														
															                     String address = "上海市青浦区" + properties.getOrDefault(addr1Key, "").toString().replace("青浦区", "").replace( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    "青浦", "").replace("上海市","").replace("上海","").replace("/弄","").replace("/号","").replace("弄","").replace("/幢","").replace("/室"," ").replace("(号楼) "," "); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            "青浦", "").replace("上海市", "").replace("上海", "").replace("/弄", "").replace("/号", "").replace("弄", "").replace("/幢", "").replace("/室", " ").replace("(号楼) ", " "); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     fileDataDto.setAddr1(address); 
														 | 
														
														 | 
														
															                     fileDataDto.setAddr1(address); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if (addr2Key != null && !addr2Key.isEmpty()) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (addr2Key != null && !addr2Key.isEmpty() && ExcelReaderUtils.isOtherDistrictThanQingpu(addr2Key)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     String address = "上海市青浦区" + properties.getOrDefault(addr2Key, "").toString().replace("青浦区", "").replace( 
														 | 
														
														 | 
														
															                     String address = "上海市青浦区" + properties.getOrDefault(addr2Key, "").toString().replace("青浦区", "").replace( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            "青浦", "").replace("上海市","").replace("上海","").replace("/弄","").replace("/号","").replace("弄","").replace("/幢","").replace("/室"," ").replace("(号楼) "," "); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            "青浦", "").replace("上海市", "").replace("上海", "").replace("/弄", "").replace("/号", "").replace("弄", "").replace("/幢", "").replace("/室", " ").replace("(号楼) ", " "); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     fileDataDto.setAddr2(address); 
														 | 
														
														 | 
														
															                     fileDataDto.setAddr2(address); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //              判断是否有参考经纬度字段 
														 | 
														
														 | 
														
															 //              判断是否有参考经纬度字段 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -181,34 +182,34 @@ public class PoiAddressController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             selectOptions.add("GCJ02"); 
														 | 
														
														 | 
														
															             selectOptions.add("GCJ02"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             selectOptions.add("BD09"); 
														 | 
														
														 | 
														
															             selectOptions.add("BD09"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             selectOptions.add("SH2000"); 
														 | 
														
														 | 
														
															             selectOptions.add("SH2000"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if(inCoordinate != null && !inCoordinate.isEmpty()){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if (inCoordinate != null && !inCoordinate.isEmpty()) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if (!selectOptions.contains(inCoordinate)) { 
														 | 
														
														 | 
														
															                 if (!selectOptions.contains(inCoordinate)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     return "请传入正确的坐标系名称!可选坐标系名称:WGS84,GCJ02,BD09,SH2000"; 
														 | 
														
														 | 
														
															                     return "请传入正确的坐标系名称!可选坐标系名称:WGS84,GCJ02,BD09,SH2000"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            }else{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 inCoordinate = "WGS84"; 
														 | 
														
														 | 
														
															                 inCoordinate = "WGS84"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            for(FileDataDto fileDataDto:fileDataDtoList){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if(fileDataDto.getLat() != null && fileDataDto.getLon() != null){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    double[] lonLat = com.skyversation.poiaddr.util.Coordinate.transformationCoordinateByCoordinate(fileDataDto.getLat(),fileDataDto.getLon(),inCoordinate,outCoordinate); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            for (FileDataDto fileDataDto : fileDataDtoList) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (fileDataDto.getLat() != null && fileDataDto.getLon() != null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    double[] lonLat = com.skyversation.poiaddr.util.Coordinate.transformationCoordinateByCoordinate(fileDataDto.getLat(), fileDataDto.getLon(), inCoordinate, outCoordinate); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     fileDataDto.setLat(lonLat[1]); 
														 | 
														
														 | 
														
															                     fileDataDto.setLat(lonLat[1]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     fileDataDto.setLon(lonLat[0]); 
														 | 
														
														 | 
														
															                     fileDataDto.setLon(lonLat[0]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //          TODO 距离计算 
														 | 
														
														 | 
														
															                 //          TODO 距离计算 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if(matchingDistance != null){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    if(fileDataDto.getResultLat() != null && fileDataDto.getResultLon() != null && fileDataDto.getLat() != null && fileDataDto.getLon() != null){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        double distance = com.skyversation.poiaddr.util.Coordinate.calculateDistance(fileDataDto.getResultLat(),fileDataDto.getResultLon(),fileDataDto.getLat(),fileDataDto.getLon()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (matchingDistance != null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if (fileDataDto.getResultLat() != null && fileDataDto.getResultLon() != null && fileDataDto.getLat() != null && fileDataDto.getLon() != null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        double distance = com.skyversation.poiaddr.util.Coordinate.calculateDistance(fileDataDto.getResultLat(), fileDataDto.getResultLon(), fileDataDto.getLat(), fileDataDto.getLon()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         fileDataDto.setMatchingDistance(distance); 
														 | 
														
														 | 
														
															                         fileDataDto.setMatchingDistance(distance); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         double matchingDistanceDb = Double.parseDouble(matchingDistance.toString()); 
														 | 
														
														 | 
														
															                         double matchingDistanceDb = Double.parseDouble(matchingDistance.toString()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        if(distance < matchingDistanceDb){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        if (distance < matchingDistanceDb) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             fileDataDto.setLtMatchingDistance("是"); 
														 | 
														
														 | 
														
															                             fileDataDto.setLtMatchingDistance("是"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        }else{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             fileDataDto.setLtMatchingDistance("否"); 
														 | 
														
														 | 
														
															                             fileDataDto.setLtMatchingDistance("否"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         } 
														 | 
														
														 | 
														
															                         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     } 
														 | 
														
														 | 
														
															                     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //          TODO 区域判断 
														 | 
														
														 | 
														
															                 //          TODO 区域判断 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if(regionalJudgment != null && !regionalJudgment.isEmpty()){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (regionalJudgment != null && !regionalJudgment.isEmpty()) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //                  解析geojson文件得到区域 
														 | 
														
														 | 
														
															 //                  解析geojson文件得到区域 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 |