Estoy tratando de mostrar puntos en un mapa OSM usando Openlayers y (Geo)Django. Los puntos deben ser proporcionados por un punto final de API REST que quiero consultar desde el javascript de openlayers.
La parte JS se ve así:
<div id="map" class="map shadow m-auto"></div> <script type="text/javascript"> var map = new ol.Map({ target: 'map', layers: [ new ol.layer.Vector({ source: new ol.source.Vector({ format: new ol.format.GeoJSON(), url: "http://localhost:8000/api/sites" }) }) , new ol.layer.Tile({ source: new ol.source.OSM(), }) ], view: new ol.View({ center: ol.proj.fromLonLat([8,48]), zoom: 10 }) }); </script>El punto final de la API solo está serializando un conjunto de consultas de django y, por lo tanto, devuelve lo siguiente:
[ { "sid":13, "site_name":"Burgsteig", "site_notes":"Reuter.2003", "municipality":1047, "geom":{ "type":"Point", "coordinates":[ 8.779644092464917, 48.00504767358004 ] } }, { "sid":14, "site_name":"Brederis, \"Weitried\"", "site_notes":"Hagn2002", "municipality":16180, "geom":{ "type":"Point", "coordinates":[ 9.628734475883569, 47.2756455228491 ] } }, { "sid":15, "site_name":"Burgweinting, \"Villa\"/\"Mühlfeld\"", "site_notes":"Zintl2012, Zintl2013", "municipality":2767, "geom":{ "type":"Point", "coordinates":[ 12.11373087937611, 49.01308089544727 ] } } ]Es solo un punto final de API básico por django-rest-framework y, hasta donde yo sé, devuelve un conjunto de datos de formato geoJSON bastante estándar. Sin embargo, cuando ejecuto esto, aparece un "Error no detectado: Tipo de GeoJSON no compatible: indefinido" . Se muestra el mapa base, es solo un problema con ese geojson. Según tengo entendido, la API no devuelve GeoJSON como en ol.format.GeoJSON() sino algo más. Entonces, ¿cómo proceso esto para que se muestre en mi mapa?