У меня есть множество источников данных, которые я читаю из API.
Эти данные имеют ряд свойств относительно конечной точки API, но все они имеют некоторые общие, а именно:
- Easting
- Northing
- Вращение
- Имя
Исходя из этого, я генерирую объекты GeoJSON (все они являются точечными объектами и преобразовываю восток / север в широты / долготы) и отображаю каждый источник данных на карте с помощью некоторого общего кода:
let vectorLayer = new ol.layer.Vector({
source: new ol.source.Vector({
features: (new ol.format.GeoJSON()).readFeatures(featureCollection)
}),
style: style
});
this.map.addLayer(vectorLayer);
Это получает точки на моей карте, и я могу их стилизовать, создавая собственные стили, я использую изображения (.png) в качестве маркера точки.
Но мне нужно повернуть маркер на основе атрибута вращения данных, и я понятия не имею, как это сделать.
Каждая точка данных из API будет иметь свое собственное вращение - они не все повернуты в одинаковой степени.
Эта система первоначально использовала this.map.addOverlay(overlay)
для добавления каждой точки, что было хорошо при тестировании, но на самом деле не так хорошо масштабировалось, так как их рендеринг занимал слишком много времени. В настоящее время мой самый большой набор данных - всего лишь 7000 точек данных.
Каков наилучший способ достижения этого?