【问题标题】:Drawing Polygon on Map在地图上绘制多边形
【发布时间】:2014-06-05 11:31:33
【问题描述】:

我正在尝试在我的地图上绘制一个具有大约 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));
    }
}

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

谁能给我一个线索?

【问题讨论】:

    标签: java android google-maps map polygon


    【解决方案1】:

    尝试添加:

    rectOptions.visible(true);
    

    在将多边形添加到地图之前。

    【讨论】:

      【解决方案2】:

      Thx Steffi 我试图添加它,但没有奏效。遇到此问题的每个人都检查您的 Lat Lng 坐标的顺序是否正确。否则你的多边形会被画在某个地方:)

      【讨论】:

      • 是的 :) 只需要替换索引 LatLng point = new LatLng(Float.parseFloat(latlng.getString(1)), Float.parseFloat(latlng.getString(0))); 取决于您的坐标在 JSON 文件中的格式
      猜你喜欢
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多