| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package com.zksy.cockpit.geometry;
- import com.fasterxml.jackson.annotation.JsonInclude;
- import com.zksy.cockpit.foundation.CockpitCoordinateValidation;
- import lombok.AllArgsConstructor;
- import lombok.Getter;
- import java.math.BigDecimal;
- import java.util.List;
- /** GeoJSON with explicit source coverage and coordinate eligibility as foreign members. */
- @Getter
- public class CockpitFacilityGeometryResponse {
- private final String type = "FeatureCollection";
- private final String generatedAt;
- private final List<Feature> features;
- private final List<Coverage> coverage;
- public CockpitFacilityGeometryResponse(String generatedAt, List<Feature> features, List<Coverage> coverage) {
- this.generatedAt = generatedAt;
- this.features = features;
- this.coverage = coverage;
- }
- @Getter
- @AllArgsConstructor
- public static class Feature {
- private final String type = "Feature";
- private final String id;
- @JsonInclude(JsonInclude.Include.ALWAYS)
- private final Geometry geometry;
- private final Properties properties;
- }
- @Getter
- @AllArgsConstructor
- public static class Geometry {
- private final String type;
- // Point: [lon, lat]; LineString: [[lon, lat], [lon, lat]].
- private final List<?> coordinates;
- }
- @Getter
- @AllArgsConstructor
- public static class Properties {
- private final String source;
- private final String sourceId;
- private final String code;
- private final String name;
- private final String industry;
- private final String typeCode;
- private final String networkType;
- @JsonInclude(JsonInclude.Include.ALWAYS)
- private final String pointType;
- @JsonInclude(JsonInclude.Include.ALWAYS)
- private final String networkId;
- // Raw pairs remain available for objects whose GeoJSON geometry must be null.
- private final List<List<BigDecimal>> sourceCoordinates;
- private final CockpitCoordinateValidation coordinateValidation;
- // In source order; one for Point, start/end for LineString.
- private final List<CockpitCoordinateValidation> coordinateValidations;
- }
- @Getter
- @AllArgsConstructor
- public static class Coverage {
- private final String industry;
- private final String source;
- private final String geometryType;
- private final String state;
- private final String reason;
- private final int recordCount;
- private final int geometryCount;
- private final int renderableCount;
- }
- }
|