【发布时间】:2016-05-24 13:58:43
【问题描述】:
我正在用 Java 编写一个程序,该程序使用 JMapViewer 显示地图并绘制静态多边形。当用户在地图中单击时,程序会说“您单击的点在多边形中”或“不在多边形中”。当点是否在多边形中时,我该如何计算?有没有现成的方法/类可以做到这一点?
谢谢你, 卢卡
【问题讨论】:
标签: java polygon jmapviewer
我正在用 Java 编写一个程序,该程序使用 JMapViewer 显示地图并绘制静态多边形。当用户在地图中单击时,程序会说“您单击的点在多边形中”或“不在多边形中”。当点是否在多边形中时,我该如何计算?有没有现成的方法/类可以做到这一点?
谢谢你, 卢卡
【问题讨论】:
标签: java polygon jmapviewer
概括地说,
构造一个MapPolygon,如图here。
使用自定义DefaultMapController 检测鼠标点击,如here 所示。
在mouseClicked()中,通过遍历MapPolygon::getPoints返回的List<ICoordinate>构造一个java.awt.Polygon;使用JMapViewer::getPosition 方法将每个ICoordinate 转换为Point。
使用Polygon::contains判断鼠标坐标是否在这个Polygon内。
【讨论】: