diff --git a/metadata_catalogue/datasets/libs/darwincore/mapping.py b/metadata_catalogue/datasets/libs/darwincore/mapping.py index 9b67354..97d9a56 100644 --- a/metadata_catalogue/datasets/libs/darwincore/mapping.py +++ b/metadata_catalogue/datasets/libs/darwincore/mapping.py @@ -41,11 +41,17 @@ def to_content(xml_path, dataset): for extension in soup.find_all("extension"): extensions.append(SourceLayer(extension, xml_path, extension=True)) + geometry_field = None + for _wkt in soup.findAll("field", {"term": "http://rs.tdwg.org/dwc/terms/footprintWKT"}): + geometry_field = "footprintWKT" + break + ctx = { "core": core, "extensions": extensions, "source": dataset.fetch_url, "layer_name": settings.GEOAPI_DWCA_LAYER_NAME, + "geometry_field": geometry_field, } content.gdal_vrt_definition = render_to_string("vrt/definition.xml", ctx) content.save() diff --git a/metadata_catalogue/datasets/models.py b/metadata_catalogue/datasets/models.py index ac2a8c1..1e87ce4 100644 --- a/metadata_catalogue/datasets/models.py +++ b/metadata_catalogue/datasets/models.py @@ -76,7 +76,7 @@ def get_metadata(self): def get_content(self): if hasattr(self, "content"): - return self.metadata + return self.content else: return Content.objects.create(dataset=self) diff --git a/metadata_catalogue/templates/vrt/definition.xml b/metadata_catalogue/templates/vrt/definition.xml index d7cdc0f..ff534ad 100644 --- a/metadata_catalogue/templates/vrt/definition.xml +++ b/metadata_catalogue/templates/vrt/definition.xml @@ -13,8 +13,16 @@ ]]> select * from {{ core }}{% for ext in extensions %} join {{ ext }} on {{ ext }}.{{ ext.id }}={{ core }}.{{ core.id }}{% endfor %} - + {% if geometry_field == "footprintWKT" %} + + WGS84 + + {% else %} + wkbPoint + WGS84 + {% endif %} + WGS84