Eu segui este exemplo para criar um mapa simples com um ponto de marcador circular: https://openlayers.org/en/latest/examples/icon-color.html
Este é meu código atual:
import Feature from 'ol/Feature.js';
import Map from 'ol/Map.js';
import Point from 'ol/geom/Point.js';
import View from 'ol/View.js';
import {Icon, Style} from 'ol/style.js';
import {OSM, Vector as VectorSource} from 'ol/source.js';
import {Tile as TileLayer, Vector as VectorLayer} from 'ol/layer.js';
import {fromLonLat} from 'ol/proj.js';
const rome = new Feature({
geometry: new Point(fromLonLat([12.5, 41.9])),
});
rome.setStyle(
new Style({
image: new Icon({
color: '#BADA55',
crossOrigin: 'anonymous',
src: 'data/dot.svg',
}),
}),
);
const vectorSource = new VectorSource({
features: [rome],
});
const vectorLayer = new VectorLayer({
source: vectorSource,
});
const tileLayer = new TileLayer({
source: new OSM()
});
const map = new Map({
layers: [tileLayer, vectorLayer],
target: document.getElementById('map'),
view: new View({
center: fromLonLat([2.896372, 44.6024]),
zoom: 3,
}),
});
E agora eu quero poder clicar no ponto e mudar sua posição para um novo ponto, dada uma nova longitude e latitude.
Procurei na documentação por Point: https://openlayers.org/en/latest/apidoc/module-ol_geom_Point-Point.html
Mas eles são realmente confusos, e não consegui encontrar uma maneira de tornar o ponto acima clicável e movido para um novo local (neste caso, eu só quero movê-lo para um local próximo, dada uma longitude e latitude fixas)
Os documentos são realmente confusos
Você precisa ouvir os eventos de clique no mapa e deixar que o OpenLayers encontre quaisquer recursos naquele local.
Se o recurso for Roma, ele será movido para Istambul.