【问题标题】:How can I draw a polygon on intersection coordinates on Nutiteq?如何在 Nuiteq 的交叉点坐标上绘制多边形?
【发布时间】:2014-10-22 06:05:57
【问题描述】:

大家好,这将是我的第一个问题,所以不要打我太重!

之前我已经添加了多边形,但是交集有点复杂。

预定义我的意思是例如两个其他多边形的交点坐标。我正在计算多边形交叉点的面积,但我也想突出显示该区域。谢谢

【问题讨论】:

    标签: eclipse polygon nutiteq


    【解决方案1】:

    您需要两个步骤:

    1. 计算交点:来自 2 个多边形的多边形。我会使用JTS,您需要在 JTS 对象中提供数据。

    2. 在 mapview 上突出显示交叉点(例如 nutiteq)。您可以将生成的多边形作为一个几何元素添加到几何图层中,就像任何其他多边形一样。使用特殊样式使其看起来与众不同。您需要将 JTS 多边形转换为 Nutieq 多边形对象才能在地图上显示它

    【讨论】:

    • 嗨@JaakL 感谢您的解释。但我仍然有转换问题。我正在使用 General Polygon Clipper 库。我能够拥有交叉区域,但问题是将该区域转换为 nutiteq 多边形。这是code的截图,如果你能找出问题所在,请告诉我。
    【解决方案2】:
    ArrayList<MapPos> keslist = new ArrayList<MapPos>();
    for (int i = 0; i < sonuc.getNumPoints(); i++) {
            double lon = sonuc.getX(i);
            double lat = sonuc.getY(i);
    MapPos mPos = new MapPos(lon, lat);
            keslist.add(mPos);
        }
    PolygonStyle polygonStyle = PolygonStyle.builder().setColor(Color.GREEN).build();
        StyleSet<PolygonStyle> polygonStyleSet = new StyleSet<PolygonStyle>(null);
        polygonStyleSet.setZoomStyle(10, polygonStyle);
    Polygon KesisimPol = new Polygon(keslist, new DefaultLabel("Kesişim"), polygonStyleSet, null);
    GeometryLayer geomLayer = new GeometryLayer(mapView.getLayers().getBaseLayer().getProjection());
        mapView.getLayers().addLayer(geomLayer);
        geomLayer.add(KesisimPol);
    }
    

    这是我的解决方案。我试过它有效。现在我正在尝试将这个新多边形添加到可编辑对象层。因为我不能在另一个相交过程中使用结果多边形。

    我希望这对其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      • 2021-12-05
      • 2012-08-19
      相关资源
      最近更新 更多