Mapbox studio labeling - 按特征大小优先放置标签

Mapbox studio labeling - prioritize label placement by feature size

我是 mapbox studio 的新手,遇到了一些标签问题。我有一个多边形层并为我的多边形标签创建了另一个点层(作为这些多边形的质心)。问题是有些区域有很多标签,我想选择显示的标签,说明落在最大多边形内的点的标签应该首先显示。有什么方法可以直接在 Mapbox studio 中执行此操作,还是我应该先在 ArcGIS 或任何其他 GIS 软件中创建排名字段?

非常感谢您的建议!

是的,MapBox Studio 根据数据中要素的顺序放置标签。因此,根据您存储数据的方式,您将不得不进行一些预处理。

如果您可以将数据存储在 PostGIS 数据库中,那么即时执行此类操作将非常容易。只需将其带入 MapBox Studio,并在某处进行查询:

SELECT name, geom
FROM <table>
ORDER BY ST_Area(geom) DESC

,因为您正在尝试从多边形图层获取点:

SELECT name, ST_PointOnSurface(geom)as geom
FROM <table>
ORDER BY ST_Area(geom) DESC

如果您将数据存储为 shapefile,则需要直接编辑 shapefile(无法即时完成)。使用 Arc/qGIS 应该很容易做到。我知道 ogr2ogr 也是可能的:

ogr2ogr -sql \
    'SELECT * \
    FROM <table> \
    ORDER BY ST_Area(geom) DESC'