确定点是否在地图视图可见区域内

时间:2019-08-23 20:18:04

标签: java android arcgis

我正在使用ARCGIS mapView和导航。我想做的是,当我的位置接近mapView VisbleArea的边界时,将地图视图更新到最新的状态。

在我的locationChangeEvent上,我得到了当前位置。我创建一个小于当前视图区域的多边形(缓冲区)。然后,我在方法中使用GeometryEngine来查看我的点是否与缓冲区多边形对齐。 内部方法的参数都是几何对象,点和多边形都是几何对象的子类。

[源Java]

Location currentLocation  = locationChangedEvent.getLocation();
Polygon vp = mapView.getVisibleArea();
Polygon buffer = GeometryEngine.buffer(vp, 100d);
Geometry point = currentLocation.getPosition();
if (!GeometryEngine.within(point, buffer)) {
      mapView.setViewpointCenterAsync(currentLocation.getPosition());
}

我得到的错误是com.esri.arcgisruntime.ArcGISRuntimeException: Invalid argument on the 'IF' statement

0 个答案:

没有答案