单张地图中的多边形覆盖

2024-03-28 15:54:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用ipyleaflet创建一个交互式地图,使用以下代码:

from ipyleaflet import Map, Polygon


polygon = Polygon(
    locations=[[(38.844185,-4.804621),(39.241299,-1.899833),(40.74308,-2.205491),(40.34742,-5.17429),(38.844185,-4.804621)],[(39.365192,-1.941078),(40.867912,-1.567062),(41.276688,-4.670904),(39.775406,-4.976737),(39.365192,-1.941078)],[(39.706161,-1.849863),(41.207623,-1.465817),(41.617561,-4.594476),(40.117233,-4.908839),(39.706161,-1.849863)],[(39.702591,-5.033657),(40.101254,-2.077048),(41.602196,-2.389729),(41.204681,-5.413605),(39.702591,-5.033657)]],
    color="green",
    fill_opacity= 0.5,
    fill_color="green"
)

m = Map(center=(38.5531, -4.6914), zoom=6)
m.add_layer(polygon);

m

组如下所示: enter image description here

我想知道怎样才能使多边形的交集不是完全透明的。查看文档中的属性https://ipyleaflet.readthedocs.io/en/latest/api_reference/polygon.html,我没有看到任何选项?你知道吗

所需输出的示例如下图所示:

enter image description here


Tags: 代码fromimportmap地图greenfillcolor
1条回答
网友
1楼 · 发布于 2024-03-28 15:54:21

由于ipyleaflet减去了椭圆多边形(您可以在您发布的文档链接的第二个示例“带孔多边形”中看到),因此得到了不好的结果

您需要分别添加每个多边形,我对您的代码做了一些更改,现在它在循环中创建并应用多边形:

from ipyleaflet import Map, Polygon

poligons = [[(38.844185,-4.804621),(39.241299,-1.899833),(40.74308,-2.205491),(40.34742,-5.17429),(38.844185,-4.804621)],
            [(39.365192,-1.941078),(40.867912,-1.567062),(41.276688,-4.670904),(39.775406,-4.976737),(39.365192,-1.941078)],
            [(39.706161,-1.849863),(41.207623,-1.465817),(41.617561,-4.594476),(40.117233,-4.908839),(39.706161,-1.849863)],
            [(39.702591,-5.033657),(40.101254,-2.077048),(41.602196,-2.389729),(41.204681,-5.413605),(39.702591,-5.033657)]]

m = Map(center=(38.5531, -4.6914), zoom=6)

for poly in poligons:
    polygon = Polygon(
        locations= poly,
        color="green",
        fill_opacity= 0.5,
        fill_color="green"
    )
    m.add_layer(polygon);

m

结果: enter image description here

相关问题 更多 >