wkt区域围栏
区域
2023-09-14 09:14:52 时间
API文档
http://shengshifeiyang.gitee.io/geotools-learning/
/**
* 判断以x,y为坐标的点point(x,y)是否在geometry表示的Polygon中
* @param x
* @param y
* @param geometry wkt格式 POLYGON((0 0, 10 0, 10 10, 0 10,0 0))
* @return
*/
public static boolean withinGeo(double x,double y,String geometry) throws ParseException {
GeometryFactory geometryFactory = new GeometryFactory();
Coordinate coord = new Coordinate(x,y);
Point point = geometryFactory.createPoint( coord );
WKTReader reader = new WKTReader( geometryFactory );
Polygon polygon = (Polygon) reader.read(geometry);
return point.within(polygon);
}
public static void main(String[] args) throws Exception {
//请自行搜素了解wkt格式
//wktPoly 1.点位要有顺序,需要按顺序画成封闭区域;2.最后一个点位和第一个点位相同,完成闭环
String wktPoly = "POLYGON ((121 29, 121 30, 122 30, 122 29,121 29))";
String wktPoint = "POINT (121.664564 29.971667)";
GeometryFactory geometryFactory = new GeometryFactory();
WKTReader reader = new WKTReader(geometryFactory);
Geometry point = reader.read(wktPoint);
Geometry poly = reader.read(wktPoly);
boolean ex = poly.contains(point);
System.out.println("ex = " + ex);
List<String> list = new ArrayList<>();
list.add("121 29");
list.add("121 30");
list.add("122 30");
list.add("122 29");
String polygon = "POLYGON (("+ StringUtils.join(list,",")+","+list.get(0)+"))";
System.out.println(polygon);
String point1 = "POINT ("+"121.664564"+" "+"29.971667"+")";
boolean b = withinGeo(121.664564, 29.971667, polygon);
System.out.println(b);
}
转载:https://blog.51cto.com/u_15127528/4732344
相关文章
- 复变函数—–区域「建议收藏」
- VBA: 不连续单元格区域复制粘贴为数值
- VBA汇总文件夹中的多文件的工作表中不同单元格区域到总表
- 【架构师(第二十五篇)】编辑器开发之属性编辑区域表单渲染
- 【已解决】solr设置了高亮,但是高亮区域没有值怎么办?
- 作业区域人数超员预警系统
- vue.js客服系统实时聊天项目开发(五)flex布局实现输入框区域
- 谷歌宣布扩展 3 个新的亚太云区域
- 【Linux 内核 内存管理】内存映射相关数据结构 ⑥ ( 文件映射 虚拟内存区域 | vm_area_struct | vm_operations_struct | 匿名映射 虚拟内存区域 )
- 【Linux 内核 内存管理】memblock 分配器 ③ ( memblock_region 内存块区域 | memblock_region 结构体成员分析 | memblock 分配器标志位 )
- js获取网页屏幕可见区域高度详解编程语言
- JVM的内存区域划分详解编程语言
- 天问一号任务着陆区域高分影像图发布
- 热点区域Redis技术发展趋势分析(热点区域redis)
- Redis强力助力地图区域搜索更精准(地图区域搜索redis)
- JavaScript存在陷阱删除某一区域所有节点
- C#将透明图片的非透明区域转换成Region的实例代码
- 利用javascript实现web页面中指定区域打印
- c#不使用系统api实现可以指定区域屏幕截屏功能
- JQuery实现当鼠标停留在某区域3秒后自动执行