|
|
@ -203,11 +203,11 @@ public class CoordUtils { |
|
|
|
JSONObject obj = new JSONObject(); |
|
|
|
JSONObject obj = new JSONObject(); |
|
|
|
|
|
|
|
|
|
|
|
obj = parseGeoJson(polygon, coordinate); |
|
|
|
obj = parseGeoJson(polygon, coordinate); |
|
|
|
|
|
|
|
|
|
|
|
if(obj == null) return null; |
|
|
|
if(obj == null) return null; |
|
|
|
|
|
|
|
|
|
|
|
return obj; |
|
|
|
return obj; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public JSONObject getCoordinateGis(Coordinate coordinate, String depth) throws IOException, ParseException { |
|
|
|
public JSONObject getCoordinateGis(Coordinate coordinate, String depth) throws IOException, ParseException { |
|
|
@ -282,55 +282,55 @@ public class CoordUtils { |
|
|
|
JSONObject result = null; |
|
|
|
JSONObject result = null; |
|
|
|
|
|
|
|
|
|
|
|
Double standard = 10000000.0; |
|
|
|
Double standard = 10000000.0; |
|
|
|
|
|
|
|
|
|
|
|
for(int i=0; i<features.size(); i++) { |
|
|
|
for(int i=0; i<features.size(); i++) { |
|
|
|
|
|
|
|
|
|
|
|
JSONObject geometry = (JSONObject) features.get(i).get("geometry"); |
|
|
|
JSONObject geometry = (JSONObject) features.get(i).get("geometry"); |
|
|
|
|
|
|
|
|
|
|
|
JSONObject properties = (JSONObject) features.get(i).get("properties"); |
|
|
|
JSONObject properties = (JSONObject) features.get(i).get("properties"); |
|
|
|
|
|
|
|
|
|
|
|
List<JSONArray> coordinates = (List<JSONArray>) geometry.get("coordinates"); |
|
|
|
List<JSONArray> coordinates = (List<JSONArray>) geometry.get("coordinates"); |
|
|
|
|
|
|
|
|
|
|
|
for(int k = 0; k< coordinates.size(); k++) { |
|
|
|
for(int k = 0; k< coordinates.size(); k++) { |
|
|
|
|
|
|
|
|
|
|
|
List<Coordinate> polygonPaths = new ArrayList<>(); |
|
|
|
List<Coordinate> polygonPaths = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
for(Object coords : coordinates.get(k)) { |
|
|
|
for(Object coords : coordinates.get(k)) { |
|
|
|
|
|
|
|
|
|
|
|
for(int j = 0; j<((JSONArray)coords).size(); j++) { |
|
|
|
for(int j = 0; j<((JSONArray)coords).size(); j++) { |
|
|
|
|
|
|
|
|
|
|
|
Object coord = ((JSONArray) coords).get(j); |
|
|
|
Object coord = ((JSONArray) coords).get(j); |
|
|
|
|
|
|
|
|
|
|
|
Object x = ((JSONArray) coord).get(0); |
|
|
|
Object x = ((JSONArray) coord).get(0); |
|
|
|
Object y = ((JSONArray) coord).get(1); |
|
|
|
Object y = ((JSONArray) coord).get(1); |
|
|
|
|
|
|
|
|
|
|
|
Double lon = y instanceof Double ? (Double) y : Double.valueOf((Long) y); |
|
|
|
Double lon = y instanceof Double ? (Double) y : Double.valueOf((Long) y); |
|
|
|
Double lat = x instanceof Double ? (Double) x : Double.valueOf((Long) x); |
|
|
|
Double lat = x instanceof Double ? (Double) x : Double.valueOf((Long) x); |
|
|
|
|
|
|
|
|
|
|
|
Coordinate areaCoord = new Coordinate(lon, lat); |
|
|
|
Coordinate areaCoord = new Coordinate(lon, lat); |
|
|
|
|
|
|
|
|
|
|
|
polygonPaths.add(areaCoord); |
|
|
|
polygonPaths.add(areaCoord); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
polygonPaths.add(polygonPaths.get(0)); |
|
|
|
polygonPaths.add(polygonPaths.get(0)); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Polygon polygon = geometryFactory.createPolygon(polygonPaths.toArray(new Coordinate[] {})); |
|
|
|
Polygon polygon = geometryFactory.createPolygon(polygonPaths.toArray(new Coordinate[] {})); |
|
|
|
|
|
|
|
|
|
|
|
if(polygon.contains(point)) { |
|
|
|
if(polygon.contains(point)) { |
|
|
|
|
|
|
|
|
|
|
|
return properties; |
|
|
|
return properties; |
|
|
|
|
|
|
|
|
|
|
|
}else { |
|
|
|
}else { |
|
|
|
|
|
|
|
|
|
|
|
Double distance = polygon.distance(point); |
|
|
|
Double distance = polygon.distance(point); |
|
|
|
|
|
|
|
|
|
|
|
if(standard > distance) { |
|
|
|
if(standard > distance) { |
|
|
|
|
|
|
|
|
|
|
|
standard = distance; |
|
|
|
standard = distance; |
|
|
|
|
|
|
|
|
|
|
|
result = properties; |
|
|
|
result = properties; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -423,6 +423,7 @@ public class CoordUtils { |
|
|
|
"^[^ ]+시 [^ ]+구$", |
|
|
|
"^[^ ]+시 [^ ]+구$", |
|
|
|
"^[^ ]+시 [^ ]+군$", |
|
|
|
"^[^ ]+시 [^ ]+군$", |
|
|
|
"^[^ ]+도 [^ ]+시$", |
|
|
|
"^[^ ]+도 [^ ]+시$", |
|
|
|
|
|
|
|
"^[^ ]+도 [^ ]+군$", |
|
|
|
"^[^ ]+도 [^ ]+시 [^ ]+구$" |
|
|
|
"^[^ ]+도 [^ ]+시 [^ ]+구$" |
|
|
|
}); |
|
|
|
}); |
|
|
|
patternMap.put("emd", new String[]{ |
|
|
|
patternMap.put("emd", new String[]{ |
|
|
@ -491,8 +492,8 @@ public class CoordUtils { |
|
|
|
forderPath.append(this.basePath); |
|
|
|
forderPath.append(this.basePath); |
|
|
|
|
|
|
|
|
|
|
|
while(!forderPathStack.isEmpty()){ |
|
|
|
while(!forderPathStack.isEmpty()){ |
|
|
|
forderPath.append("/"); |
|
|
|
|
|
|
|
forderPath.append(forderPathStack.pop()); |
|
|
|
forderPath.append(forderPathStack.pop()); |
|
|
|
|
|
|
|
forderPath.append("/"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
forderPath.append(this.baseFileName); |
|
|
|
forderPath.append(this.baseFileName); |
|
|
|