簡體   English   中英

谷歌地圖多邊形中的額外行

[英]extra line in google map polygon

在以下屏幕截圖中,我通過單擊Google地圖繪制一個多邊形。 使用setOnMapClickListener將被單擊的點的位置(在圖像中顯示為1-10)存儲到一個數組列表中,然后使用如圖所示的多邊形方法繪制多邊形。

點按圖像中所示的順序單擊,但是我在8和10之間得到一條額外的線。我如何才能獲得在地圖上單擊的確切點的多邊形。

mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
            @Override
            public void onMapClick(LatLng latLng) {
                    polygon_list.add(latLng);
                    mMap.addMarker(new MarkerOptions().position(latLng).icon(BitmapDescriptorFactory.fromResource(R.mipmap.dot)).anchor(0.5f, 0.5f));
                }
            }
        });

public void polygon() {
        PolygonOptions opts = new PolygonOptions();
        for (LatLng location : polygon_list) {
            opts.add(location);
            poly_shape = mMap.addPolygon(opts.strokeColor(Color.RED).fillColor(Color.BLUE));
        }
    }

地圖截圖]

您可以嘗試一些建議。

  1. 在添加點擊偵聽器之前,請清除polygon_list
  2. 在for循環外,一次創建poly_shape

此刻,您每次在for循環內向PolygonOptions添加一個點並創建一個新的多邊形。 這可能是在8到10之間增加一行的原因。

更新后的代碼如下所示

mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
            @Override
            public void onMapClick(LatLng latLng) {
                    polygon_list.add(latLng);
                    mMap.addMarker(new MarkerOptions().position(latLng).icon(BitmapDescriptorFactory.fromResource(R.mipmap.dot)).anchor(0.5f, 0.5f));
                }
            }
        });

public void polygon() {
        PolygonOptions opts = new PolygonOptions();
        for (LatLng location : polygon_list) {
            opts.add(location);
        }
       poly_shape = mMap.addPolygon(opts.strokeColor(Color.RED).fillColor(Color.BLUE));
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM