public static List<Point2D.Double> convertLine(String line, Long radius) {
List<Point2D.Double> convertResult = new ArrayList<>();
JSONArray array = JSONUtil.parseArray(line);
List<Point2D.Double> ptsAll = new ArrayList<>();
array.forEach(i -> {
String dwType = JSONUtil.parseObj(i).getJSONObject("geometry").getStr("type");
if (dwType.equals("LineString")) {
JSONArray z = JSONUtil.parseObj(i).getJSONObject("geometry").getJSONArray("coordinates");
z.forEach(y -> {
JSONArray zb = JSONUtil.parseArray(y);
Point2D.Double dw = new Point2D.Double();
dw.setLocation(Double.parseDouble(String.valueOf(zb.get(0))), Double.parseDouble(String.valueOf(zb.get(1))));
ptsAll.add(dw);
});
}
});
if (ptsAll.size() > 0) {
List<LatLng> dataList = new ArrayList<>(ptsAll.size());
for (Point2D.Double doubles : ptsAll) {
dataList.add(new LatLng(doubles.getY() / Math.PI * 180, doubles.getX() / Math.PI * 180));
}
String result = PolylineBuffer.getLineBufferEdgeCoords(dataList, (Optional.ofNullable(Double.valueOf(radius)).orElse(100.0)) / 2000);
String[] split = result.split(",");
for (int i = 0; i < split.length / 2; i++) {
Point2D.Double zb = new Point2D.Double(Double.parseDouble(split[2 * i]) * Math.PI / 180, Double.parseDouble(split[2 * i + 1]) * Math.PI / 180);
convertResult.add(zb);
}
}
return convertResult;
}
java转换线坐标 为 面
原创
©著作权归作者所有:来自51CTO博客作者zzzzmt的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
谷歌地球引擎:实现坐标系转换与重投影的方法
本文主要对GEE中地理坐标系与投影坐标系的转换、重投影等操作加以介绍。本文是谷歌地球引擎(Google Earth Engine,GEE)系列教学文章的第十三篇~
谷歌地球引擎 Earth Engine JavaScript 坐标系 投影