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'
我是 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'