【问题标题】:Showing shapely MultiPolygon on top of ipyleaflet map在 ipyleaflet 地图上显示匀称的 MultiPolygon
【发布时间】:2020-06-27 15:01:27
【问题描述】:

我不知道是否有其他软件包正在做我想做的事情,但有没有办法在 shaply MultiPolygon 上添加一个图层到 ipyleadfet 地图之上?

这是一个代码示例:

import numpy as np
import matplotlib.pyplot as plt
from shapely.geometry import Point
from shapely.ops import unary_union
from ipyleaflet import Map, basemaps, basemap_to_tiles,AntPath,Marker, MarkerCluster
%matplotlib inline

c1 = Point(33.1,32.8).buffer(0.1)
c2 = Point(33.1,34.8).buffer(1)
c3 = Point(33.1,36.8).buffer(1)
C = [c1,c2,c3]
D=unary_union(C)
type(D)

shapely.geometry.multipolygon.MultiPolygon

D

# Testing ipyleaflet
Tel_aviv_lat_lon = (33.109333, 34.855499)
m = Map(center=Tel_aviv_lat_lon, zoom=10)

dark_matter_layer = basemap_to_tiles(basemaps.OpenStreetMap.Mapnik)
m.add_layer(dark_matter_layer)
m

如何在地图顶部添加 D(shapely.geometry.multipolygon.MultiPolygon 对象)?

【问题讨论】:

    标签: python leaflet polygon shapely


    【解决方案1】:

    嘿,我偶然发现了这个问题,一个简单的方法是将匀称的多边形转换为 WKT,然后添加一个 WKTLayer

    像这样:

    from shapely.geometry import Point
    from shapely.ops import unary_union
    from ipyleaflet import Map, WKTLayer
    
    c1 = Point(32.8,33.1).buffer(0.1)
    c2 = Point(33.1,34.8).buffer(1)
    c3 = Point(33.1,36.8).buffer(1)
    C = [c1,c2,c3]
    D=unary_union(C)
    
    m = Map(center=(35, 35), zoom=6)
    
    wlayer = WKTLayer(
        wkt_string=D.wkt,
    )
    
    m.add_layer(wlayer)
    
    m
    

    我和协调员一起玩了一会儿,这样他们就明白了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-06
      • 2019-11-08
      • 2011-03-07
      • 1970-01-01
      相关资源
      最近更新 更多