Sto cercando di creare mappe "pin-drop" (ad esempio indicatori di mappa) in OpenLayers-3 (OL3) utilizzando immagini SVG.Come posso utilizzare un'immagine SVG come marker di mappa in OpenLayers-3?
Attualmente, sto usando le immagini PNG come pindrops che fanno riferimento all'attributo di proprietà ol.style.Icon source ("src") corretto. Tuttavia, questo non funziona utilizzando un'immagine SVG. C'è un altro modo di usare un SVG nello stesso modo? Forse usando un riferimento oltre a ol.style.Icon anche? C'è già un sacco di SVG incorporato in Open Layers, quindi questo dovrebbe essere possibile, ma non ho trovato un modo per farlo funzionare in OL3. C'è qualche altro modo per farlo in OL3 che dovrei prendere in considerazione?
Nota: abbiamo già provato ad utilizzare un livello ol.Vector, tuttavia quando l'utente esegue lo zoom in/out, le dimensioni dell'immagine SVG aumentano o diminuiscono, soluzione inadeguata.
OL3 (esito negativo):
var createMapMarkerImage = function() {
return function(feature, resolution) {
var iconStyle = new ol.style.Style({
image: new ol.style.Icon(({
src: 'img/map_pindrop.svg' // OL3 doesn’t like this, but accepts a .PNG just fine
}))
});
return [iconStyle];
};
};
funzionalità molto simili, è l'esempio di seguito ho trovato in rete, è quasi perfetto, se non fosse per il fatto che l'esempio utilizza OpenLayers- 2 (OL2) funzionalità che chiama la libreria openlayers.js (invece della libreria ol.js di OL3). Purtroppo, lo scambio di questi file javascript non riesce.
OL2 (opere -ma è la vecchia biblioteca OL):
http://dev.openlayers.org/sandbox/camptocamp/tipi/examples/vector-symbols.html
Ricerca online per una soluzione a questo sembra produrre solo altre persone confuse ricerca per una soluzione.
Aiutateci,
freebeer
FYI, SVG era un riproduttore supportato in OpenLayers 2, ma non in OpenLayers 3. I renderer supportati in ol3 sono: DOM, Canvas e WebGL. –