Ограничить маркировки в одну метку для возможности Мультиполигон


Метка по умолчанию в OpenLayers 3.10.1 метит каждую часть Мультиполигона. Я хочу знать, можно ли пометить только первый полигон в Мультиполигоне.

1 3

1 ответ:

Вы можете использовать отдельный стиль для метки с помощью функции геометрии , которая возвращает одну точку для позиции метки.

var styles = [
  // Style for the label
  new ol.style.Style({
    text: new ol.style.Text({..}),
    geometry: function(feature) {
        // expecting a MultiPolygon here
        var interiorPoints = feature.getGeometry().getInteriorPoints();
        return interiorPoints.getPoint(0);
    }
  }),
  // Style for the polygons
  new ol.style.Style({
    stroke: new ol.style.Stroke({...}),
    fill: new ol.style.Fill({...})
  })
];

Http://jsfiddle.net/p0acpbtg/2/