【问题标题】:Draw more than one Polygon on Map在地图上绘制多个多边形
【发布时间】:2018-06-08 15:48:25
【问题描述】:

我在 AndroidStudio 上开发应用程序时遇到了这个简单但烦人的问题。 我需要让我的应用能够在地图上绘制多个多边形。

您需要知道: 1.我不想有固定数量的多边形顶点。 2.我不想有固定数量的多边形,我想加多少就加多少。 3.我事先不知道多边形顶点的坐标,我想通过点击地图得到。

到目前为止我做了什么: 首先,我编写了 OnMapClick 方法,它可以让我获取我单击的点的坐标并将它们放入一个 ArrayList(arrayPoints)中。然后其他两种方法(onPolylineClick 和 onMarkerClick)允许我“关闭”多边形并创建它:

 @Override
    public void onMapClick(LatLng latLng) {

        MarkerOptions marker = new MarkerOptions();
        marker.position(latLng);
        mGoogleMap.addMarker(marker);

        polylineOptions = new PolylineOptions();
        polylineOptions.clickable(true);
        polylineOptions.color(Color.BLACK);
        polylineOptions.width(8);
        arrayPoints.add(latLng);

        polylineOptions.addAll(arrayPoints);


        mGoogleMap.addPolyline(polylineOptions);


    }


   @Override
    public void onPolylineClick(Polyline polyline) {

        Polygon polygon = mGoogleMap.addPolygon(new PolygonOptions()
                .clickable(true)
                .addAll(arrayPoints));


        stylePolygon(polygon);

    }


    @Override
    public boolean onMarkerClick(Marker marker) {

        if (arrayPoints.contains(marker.getPosition())) {
            polygon = mGoogleMap.addPolygon(new PolygonOptions()
                    .clickable(true)
                    .addAll(arrayPoints));


            stylePolygon(polygon);
            polygoncoord = polygon.getPoints().toString();
            Log.i("polygoncoord", polygon.getPoints().toString());
        } else {
            AddPointOfAnalysisLabel(label, point_coords);
        }
        return true;
    }

现在的问题是,如果我在第一个多边形关闭后继续点击地图,我也会继续添加同一折线的新标记,而不是创建新的多边形。

我的想法是,也许我可以点击多边形来关闭它,然后这将允许我创建一个新的(不删除第一个)。因此我已经准备好了 onPolygonClick 方法,但我真的知道在里面写什么来实现我的想法...... 你能帮帮我吗?

提前致谢!

【问题讨论】:

    标签: java android google-maps polygon


    【解决方案1】:

    关闭多边形后,您需要重置 arrayPoints 列表,以便开始为下一个多边形收集点。

    arrayPoints.clear();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      • 1970-01-01
      • 2014-09-15
      相关资源
      最近更新 更多