安卓谷歌地图如何使用填充颜色绘制复杂多边形

4
我正在尝试在Google地图上绘制手绘形状,到目前为止,我已经成功地绘制了折线和多边形,感谢@Chintan Khetiya在 在Android中的Google地图V2上绘制自由手多边形在地图上绘制路径中的回复。但是,当我尝试像下面的图片一样绘制多边形时,"polygonOptions.fillColor(color)"无法正常工作。我尝试将点转换为两个多边形,但也没有用。有人可以提供建议或分享任何提示或更好的解决方案来使用Google地图多边形绘制填充颜色的自由手形状吗?

polygon with colid

这是我如何绘制多边形

fram_map.setOnTouchListener(new View.OnTouchListener() {     
   @Override
    public boolean onTouch(View v, MotionEvent event) {
        float x = event.getX();
        float y = event.getY();

        int x_co = Math.round(x);
        int y_co = Math.round(y);

        projection = mMap.getProjection();
        Point x_y_points = new Point(x_co, y_co);

        LatLng latLng = mMap.getProjection().fromScreenLocation(x_y_points);
        latitude = latLng.latitude;

        longitude = latLng.longitude;

        int eventaction = event.getAction();
        switch (eventaction) {
            case MotionEvent.ACTION_DOWN:
                // finger touches the screen
                val.add(new LatLng(latitude, longitude));

            case MotionEvent.ACTION_MOVE:
                // finger moves on the screen
                val.add(new LatLng(latitude, longitude));

            case MotionEvent.ACTION_UP:
                // finger leaves the screen
                Draw_Map();
                break;
        }

        if (Is_MAP_Moveable == true) {
            return true;

        } else {
            return false;
        }
    }
});

public void Draw_Map() {
    rectOptions = new PolygonOptions();
    rectOptions.addAll(val);
    rectOptions.strokeColor(Color.BLUE);
    rectOptions.strokeWidth(7);
    rectOptions.fillColor(Color.CYAN);
    polygon = mMap.addPolygon(rectOptions);
}

"Zillow房地产Android应用程序"中也使用了类似的功能。

1个回答

1

我也尝试过这个,但是多边形没有正确填充。我该怎么办? - Ahmad Vatani
1
@AhmadVatani 你在绘制的多边形中有交叉吗?因为如果我没记错的话,如果存在交叉,多边形将无法填充(虽然文档中没有找到这一点,但在某些设备上有经验)。 - Marco Capoferri
或者如何找到部分路径并绘制单独的多边形? - Ahmad Vatani
@AhmadVatani 我使用JTS库“解决”了简化多边形的问题。在我的特定情况下,失去孔洞并不是一个问题。但是,如果您需要由交点生成的孔洞,则应找到一种将绘制的多边形分割成更多多边形的方法。 - Marco Capoferri
1
@johnsonjp34 你有向谷歌搜索过吗?这是GSearch的第一个结果 https://github.com/locationtech/jts - Marco Capoferri
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接