坐标点在 jmapviewer 多边形中?

coordinates point is in jmapviewer polygon?

我正在 Java 中制作一个程序,该程序使用 JMapViewer 显示地图并绘制静态多边形。当用户在地图中单击时,程序会说 "the point where you have clicked is in polygon" 或 "not in polygon"。当点是否在多边形中时,我该如何计算?有没有准备好 method/class 这样做?

谢谢, 卢卡

大纲,

  • 构造一个MapPolygon如图here.

  • 使用自定义 DefaultMapController 检测鼠标点击,如图 here

  • mouseClicked()中,通过迭代MapPolygon::getPoints返回的List<ICoordinate>构造一个java.awt.Polygon;使用 JMapViewer::getPosition 方法将每个 ICoordinate 转换为 Point.

  • Polygon::contains判断鼠标坐标是否在这个Polygon内.