Skip to content

[Feature Request] Support MultiPoint geojson import #586

Description

@baslat

I have a geojson export from colota. It is of type MultiPoint. When I try to import into geopulse, I get the error pasted below, seemingly because it's not LineString or Point. Would it be possible to support MultiPoint geojson imports please?

ERROR [org.git.tes.geo.imp.ser.ImportJobService] (quarkus-virtual-thread-301468) Failed to validate import job 0637f99e-3353-4c89-af57-48cbd0f405f6: Invalid geojson format: Could not resolve type id 'MultiPoint' as a subtype of `org.github.tess1o.geopulse.gps.integrations.geojson.model.GeoJsonGeometry`: known type ids = [LineString, Point] (for POJO property 'geometry')
 at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 7, column: 17] (through reference chain: org.github.tess1o.geopulse.gps.integrations.geojson.model.GeoJsonFeature["geometry"]): java.lang.IllegalArgumentException: Invalid geojson format: Could not resolve type id 'MultiPoint' as a subtype of `org.github.tess1o.geopulse.gps.integrations.geojson.model.GeoJsonGeometry`: known type ids = [LineString, Point] (for POJO property 'geometry')
 at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 7, column: 17] (through reference chain: org.github.tess1o.geopulse.gps.integrations.geojson.model.GeoJsonFeature["geometry"])
        at org.github.tess1o.geopulse.importdata.service.BaseGpsImportStrategy.validateAndDetectDataTypes(BaseGpsImportStrategy.java:67)
        at org.github.tess1o.geopulse.importdata.service.GeoJsonImportStrategy_ClientProxy.validateAndDetectDataTypes(Unknown Source)
        at org.github.tess1o.geopulse.importdata.service.ImportDataService.validateAndDetectDataTypes(ImportDataService.java:45)
        at org.github.tess1o.geopulse.importdata.service.ImportDataService_ClientProxy.validateAndDetectDataTypes(Unknown Source)
        at org.github.tess1o.geopulse.importdata.service.ImportJobService.processAvailableJobs(ImportJobService.java:149)
        at org.github.tess1o.geopulse.importdata.service.ImportJobService.processImportJobs(ImportJobService.java:130)
        at org.github.tess1o.geopulse.importdata.service.ImportJobService_ClientProxy.processImportJobs(Unknown Source)
        at org.github.tess1o.geopulse.importdata.service.ImportJobService_ScheduledInvoker_processImportJobs_0f300e332ad99ca81116475ae6c2150ed42afafe.invokeBean(Unknown Source)
        at io.quarkus.scheduler.common.runtime.DefaultInvoker.invoke(DefaultInvoker.java:25)
        at io.quarkus.scheduler.common.runtime.DelegateInvoker.invokeDelegate(DelegateInvoker.java:29)
        at io.quarkus.scheduler.common.runtime.StatusEmitterInvoker.invoke(StatusEmitterInvoker.java:35)
        at io.quarkus.scheduler.common.runtime.DelegateInvoker.invokeDelegate(DelegateInvoker.java:29)
        at io.quarkus.scheduler.common.runtime.DelegateInvoker.invokeComplete(DelegateInvoker.java:36)
        at io.quarkus.scheduler.common.runtime.OffloadingInvoker$1$1.run(OffloadingInvoker.java:45)
        at io.quarkus.virtual.threads.ContextPreservingExecutorService$ContextPreservingRunnable.run(ContextPreservingExecutorService.java:45)
        at java.base@25.0.4/java.util.concurrent.ThreadPerTaskExecutor$TaskRunner.run(ThreadPerTaskExecutor.java:291)
        at java.base@25.0.4/java.lang.Thread.runWith(Thread.java:1487)
        at java.base@25.0.4/java.lang.VirtualThread.run(VirtualThread.java:460)
        at java.base@25.0.4/java.lang.VirtualThread$VThreadContinuation$1.run(VirtualThread.java:252)
Caused by: com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve type id 'MultiPoint' as a subtype of `org.github.tess1o.geopulse.gps.integrations.geojson.model.GeoJsonGeometry`: known type ids = [LineString, Point] (for POJO property 'geometry')
 at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 7, column: 17] (through reference chain: org.github.tess1o.geopulse.gps.integrations.geojson.model.GeoJsonFeature["geometry"])
        at com.fasterxml.jackson.databind.DeserializationContext.invalidTypeIdException(DeserializationContext.java:2088)
        at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownTypeId(DeserializationContext.java:1637)
        at com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase._handleUnknownTypeId(TypeDeserializerBase.java:299)
        at com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase._findDeserializer(TypeDeserializerBase.java:164)
        at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId(AsPropertyTypeDeserializer.java:150)
        at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:135)
        at com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:262)
        at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:138)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:302)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:169)
        at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342)
        at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:5023)
        at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3104)
        at org.github.tess1o.geopulse.gps.integrations.geojson.StreamingGeoJsonParser.parseFeatureArray(StreamingGeoJsonParser.java:115)
        at org.github.tess1o.geopulse.gps.integrations.geojson.StreamingGeoJsonParser.parseFeatures(StreamingGeoJsonParser.java:88)
        at org.github.tess1o.geopulse.importdata.service.GeoJsonImportStrategy.validateFormatSpecificData(GeoJsonImportStrategy.java:57)
        at org.github.tess1o.geopulse.importdata.service.BaseGpsImportStrategy.validateAndDetectDataTypes(BaseGpsImportStrategy.java:47)
        ... 18 more

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions