【问题标题】:Expanding Google Map Polygon in Android在 Android 中扩展 Google Map Polygon
【发布时间】:2017-06-21 12:34:36
【问题描述】:

第三次点击地图后,下面的代码会创建一个多边形。我需要在第四次、第五次等点击后扩展(即添加新顶点)到现有多边形。

   public void onMapClick(LatLng point) {
       mTapTextView.setText("tapped, point=" + point);
       if (i==0){
           i=1;
           coordinates.add(point);
           googleMap.addMarker(new MarkerOptions()
                   .position(point)
                   .title(String.valueOf(point.latitude))
                   .snippet(String.valueOf(point.latitude))
                   .rotation((float) -15.0)
                   .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE))
           );
       } else if (i==1) {
           i=i+1;
           coordinates.add(point);
           googleMap.addPolyline((new PolylineOptions())
                   .add(coordinates.get(0), coordinates.get(1)));
       }else if (i==2){
           coordinates.add(point);
           polygon = googleMap.addPolygon((new PolygonOptions())
                   .add(coordinates.get(0), coordinates.get(1),coordinates.get(2)));
           i=i+1;
       }else{
           // How do I expand the existing polygon
       }
   }

【问题讨论】:

    标签: android google-maps polygon


    【解决方案1】:

    我只是在将点移动到数组后删除了现有的,然后通过网络点击重新创建了一个多边形。

    public int i=0;
        public Polygon polygon;
        public Polyline polyline;
    
        List<LatLng> coordinates=new ArrayList<LatLng>();
       public void onMapClick(LatLng point) {
           mTapTextView.setText("tapped, point=" + point);
           if (i==0){
               i=1;
               coordinates.add(point);
               googleMap.addMarker(new MarkerOptions()
                       .position(point)
                       .title(String.valueOf(point.latitude))
                       .snippet(String.valueOf(point.latitude))
                       .rotation((float) -15.0)
                       .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE))
               );
           } else if (i==1) {
               i=i+1;
               coordinates.add(point);
               polyline = googleMap.addPolyline((new PolylineOptions())
                       .add(coordinates.get(0), coordinates.get(1)));
           }else if (i>1){
               coordinates.add(point);
               polyline.remove();
               if (i>2){polygon.remove();};
               polygon = googleMap.addPolygon(new PolygonOptions()
                   .addAll(coordinates)
                .strokeColor(Color.BLACK)
                 .strokeWidth(10));
               //polygon = googleMap.addPolygon((new PolygonOptions())
                  //     .add(coordinates.get(0), coordinates.get(1),coordinates.get(2)));
               i=i+1;
           }/*else{
               List<LatLng> polygonList = polygon.getPoints();
    
               Toast.makeText(getBaseContext(), polygonList.toString(), Toast.LENGTH_LONG).show();
    
    
               polygonList.add(point);
               polygon.remove();
               polygon = googleMap.addPolygon((new PolygonOptions()));
               polygon.setPoints(polygonList);
               i=i+1;
           }*/
       }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      • 2018-09-14
      • 2018-09-09
      • 2016-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多