Tengo una representación de mapa, quiero agregar una capa basada en un GEOJSON, pero no quiero leerlo directamente desde un archivo GEOJSON, en cambio, tengo una variable que contiene la cadena exacta de GEOJSON que necesito, ¿Es posible cargarlo desde una variable en lugar de una url?
var map = new ol.Map({ target: 'map', layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }), new ol.layer.Vector({ title: 'bikesRented', source: new ol.source.Vector({ url: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! format: new ol.format.GeoJSON() }), style: bikeStyle2 }) ], view: new ol.View({ center: ol.proj.fromLonLat([11.341868,44.494949]), zoom: 14 }) });Puede leer las características de su cadena y agregarlas a la fuente
var source = new ol.source.Vector(); var map = new ol.Map({ target: 'map', layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }), new ol.layer.Vector({ title: 'bikesRented', source: source, style: bikeStyle2 }) ], view: new ol.View({ center: ol.proj.fromLonLat([11.341868,44.494949]), zoom: 14 }) }); source.addFeatures( new ol.format.GeoJSON().readFeatures(geojsonstring, { dataProjection: 'EPSG:4326', featureProjection: map.getView().getProjection() }) );o puede usar una URL de datos y dejar que OpenLayers la cargue
var map = new ol.Map({ target: 'map', layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }), new ol.layer.Vector({ title: 'bikesRented', source: new ol.source.Vector({ url: 'data:,' + encodeURIComponent(geojsonstring), format: new ol.format.GeoJSON() }), style: bikeStyle2 }) ], view: new ol.View({ center: ol.proj.fromLonLat([11.341868,44.494949]), zoom: 14 }) });