Openlayers 3 - разные стили / маркеры для каждой точки на объекте MultiPoint
У меня есть функция MultiPoint со следующим Geo JSON.
{
"type": "Feature",
"geometry": {
"type": "MultiPoint",
"coordinates": [
[
-123,
58
],
[
-152.32,
17.5
],
[
52.02,
42.64
]
]
}
}
Когда я рисую это на карте и применяю любой значок через функцию стиля, он применяется ко всем точкам. Но я хотел бы показать все 3 координаты выше с различными значками на карте. Можно ли как-нибудь добавить разные маркеры для каждой координаты в многоточечном объекте?
1 ответ
Чтобы применить разные стили для разных координат в MultiPoint, нужно написать разные стили для каждой координаты. Я создал вид в плункер. Пройдите код по этой ссылке
new ol.style.Style({
image: new ol.style.Circle({
radius: 5,
fill: new ol.style.Fill({
color: 'orange'
})
}),
geometry: function(feature) {
var coordinates = feature.getGeometry().getCoordinates();
return new ol.geom.Point(coordinates[0]);
}
})
В функции геометрии рассмотрите единственную координату и примените стиль для нее.
Примечание. Если в MultiPoint больше точек, код будет раздутым.