高德地图添加多边形Polygon颜色异常的解决

高德地图的覆盖物添加API提供了很多种指定覆盖物的添加和自定义覆盖物添加的方法。标记、矢量图形元素(包括:折线、多边形和圆)等。覆盖物拥有自己的地理坐标,当拖动或缩放地图时,它们也会随地图移动。

在添加多边形(Polygon)的时候,我发现并没有设置Polygon区域内color的透明度的方法。

aMap.addPolygon(new PolygonOptions()
            .addAll(createRectangle(Constants.SHANGHAI, 1, 1))
            .fillColor(Color.LTGRAY).strokeColor(Color.RED).strokeWidth(1));
    PolygonOptions options = new PolygonOptions();
    int numPoints = 400;
    float semiHorizontalAxis = 5f;
    float semiVerticalAxis = 2.5f;
    double phase = 2 * Math.PI / numPoints;
    for (int i = 0; i <= numPoints; i++) {
        options.add(new LatLng(Constants.BEIJING.latitude
                + semiVerticalAxis * Math.sin(i * phase),
                Constants.BEIJING.longitude + semiHorizontalAxis
                        * Math.cos(i * phase)));
    }
    polygon = aMap.addPolygon(options.strokeWidth(4f)
            .strokeColor(Color.BLACK).fillColor(Color.LTGRAY));

其实Color本身就是带透明度属性的,只不过我们平常构造的时候都不这么用,默认为255的alpha值,所以根本就是不透明。

使用Int color = Color.argb(127,255,0,255);Color中的静态方法返回一个int的color值,这样就解决了问题。

aMap.addPolygon(new PolygonOptions()
            .addAll(createRectangle(Constants.SHANGHAI, 1, 1))
            .fillColor(Color.LTGRAY).strokeColor(Color.argb(127,255,0,255)).strokeWidth(1));
    PolygonOptions options = new PolygonOptions();
    int numPoints = 400;
    float semiHorizontalAxis = 5f;
    float semiVerticalAxis = 2.5f;
    double phase = 2 * Math.PI / numPoints;
    for (int i = 0; i <= numPoints; i++) {
        options.add(new LatLng(Constants.BEIJING.latitude
                + semiVerticalAxis * Math.sin(i * phase),
                Constants.BEIJING.longitude + semiHorizontalAxis
                        * Math.cos(i * phase)));
    }
    polygon = aMap.addPolygon(options.strokeWidth(4f)
            .strokeColor(Color.BLACK).fillColor(Color.LTGRAY));

这个问题确实比较简单,是一个很小的知识点。

转载于:https://my.oschina.net/hz51390/blog/726365

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在高德地图中,多边形是一种常见的覆盖物类型。您可以使用JavaScript API提供的`AMap.Polygon`类来添加、获取和删除多边形。下面是一些示例代码,演示如何使用`AMap.Polygon`类来操作多边形覆盖物。 ### 添加多边形覆盖物 要在地图添加多边形覆盖物,您可以使用以下代码: ```javascript var map = new AMap.Map('container', { zoom: 13, center: [116.39, 39.9] }); var path = [[116.403322, 39.920255], [116.410703, 39.897555], [116.402292, 39.892353], [116.389846, 39.891365]]; var polygon = new AMap.Polygon({ map: map, path: path, strokeColor: '#FF33FF', strokeWeight: 6, fillColor: '#1791fc', fillOpacity: 0.4 }); ``` 在上面的代码中,我们创建了一个地图对象,然后定义了多边形的路径(path)和样式(strokeColor、strokeWeight、fillColor、fillOpacity),最后使用`new AMap.Polygon()`方法创建多边形覆盖物,并将其添加地图上。 ### 获取多边形覆盖物 要获取多边形覆盖物的属性(如路径、样式等),您可以使用以下代码: ```javascript var path = polygon.getPath(); // 获取多边形的路径 var strokeColor = polygon.getOptions().strokeColor; // 获取多边形的边框颜色 var fillColor = polygon.getOptions().fillColor; // 获取多边形的填充颜色 ``` 在上面的代码中,我们使用`getPath()`方法获取多边形的路径,使用`getOptions()`方法获取多边形的选项,并从选项中获取边框颜色和填充颜色。 ### 删除多边形覆盖物 要删除多边形覆盖物,您可以使用以下代码: ```javascript polygon.setMap(null); // 将多边形地图上删除 ``` 在上面的代码中,我们使用`setMap(null)`方法将多边形地图上删除。 总结一下,您可以使用`AMap.Polygon`类来添加、获取和删除多边形覆盖物。您可以根据您的需求,修改多边形的属性和样式,实现更多地图功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值