在地图上绘制多边形

时间:2014-06-05 11:31:34

标签: java android google-maps map polygon

我正在尝试在地图上绘制一个大约260个坐标的多边形。但我无法弄清楚为什么不绘制多边形? PolygonOptions中没有空引用,也没有错误的数据。

 protected void drawOverlayPolygon(JSONArray coordinates) {
    PolygonOptions rectOptions = new PolygonOptions();
    if (coordinates != null) {
        int j = 0;
        while(!coordinates.isNull(j))
            j++;
        ArrayList<LatLng> points = new ArrayList<LatLng>(j);
        for (int i = 0; i < j; i++) {
            try {
                JSONArray latlng = coordinates.getJSONArray(i);
                // latlng = coordinates.getJSONArray(i);
                if (latlng != null) {
                    LatLng point = new LatLng(Float.parseFloat(latlng
                            .getString(0)), Float.parseFloat(latlng
                            .getString(1)));

                //  rectOptions.add(point);
                    points.add(point);
                    Log.i("LatLng Polygon",
                            Float.parseFloat(latlng.getString(0)) + " / "
                                    + Float.parseFloat(latlng.getString(1)));
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
            // }

        }

        rectOptions.addAll(points);
        rectOptions.strokeColor(Color.RED);
        rectOptions.fillColor(Color.BLUE);

        Polygon polygon = mapFragment.getMap().addPolygon(rectOptions);
        polygon.setVisible(true);


        Polygon polygon2 = mapFragment.getMap().addPolygon(
                new PolygonOptions()
                        .add(new LatLng(0, 0), new LatLng(0, 5),
                                new LatLng(3, 5)).strokeColor(Color.RED)
                        .fillColor(Color.BLUE));
    }
}

为了测试,我添加了一个简单的Polygon(polygon2)并绘制它。我正在解析JSON文件中的坐标。我记录了corrds,他们似乎没事。我注意到的一件事是JSONArray坐标包含空引用。

有人能给我一些线索吗?

2 个答案:

答案 0 :(得分:0)

尝试添加:

rectOptions.visible(true);
在将Polygon添加到地图之前

答案 1 :(得分:0)

Thx Steffi我试图补充一下,但没有奏效。遇到此问题的每个人都会检查Lat Lng坐标的顺序是否正确。否则你的多边形就会在某处被绘制出来:)