Введите ошибку преобразования JTS в Geo JSON с функцией - PullRequest
0 голосов
/ 13 января 2020

У меня есть Java POJO-задание с ГИС-геометрией, которое я пытаюсь преобразовать в Geo JSON с функциями.

Библиотека, которую я использую для преобразования, jts2geo json

Мой код теста состоит в следующем: ошибка в String geo Json при попытке передать его в считыватель.

    GeometryFactory gf = new GeometryFactory();
    Double y = -36.829;
    Double x = 174.896;

    Task testTask = new Task();
    testTask.setId(new Long(01));
    testTask.setTitle("Test Task");
    Point p = gf.createPoint(new Coordinate(x, y));
    p.setSRID(4326);
    testTask.setLocation(p);
    taskRepository.save(testTask);

    ObjectMapper objectMapper = new ObjectMapper();
    String geoJson = objectMapper.writeValueAsString(testTask); // geojson is a String

    GeoJSONReader reader = new GeoJSONReader();
    org.wololo.geojson.Geometry geometry = reader.read(geoJson); // type error

    // create and serialize a FeatureCollection
    List<Feature> features = new ArrayList<Feature>();
    Map<String, Object> properties = new HashMap<String, Object>();
    properties.put("Size", 5);
    properties.put("Area", "Auckland");
    features.add(new Feature(geoJson, properties));
    GeoJSONWriter writer = new GeoJSONWriter();
    GeoJson json = writer.write(features);

Проблема ошибка типа в строке org.wololo.geo json. Геометрия геометрии = reader.read (geo Json);

enter image description here

Он не принимает строку, даже если метод reader.read принимает строку Geo JSON.

Я также пытался передать точку JTS p:

        GeoJSONReader reader = new GeoJSONReader();
    org.wololo.geojson.Geometry geometry = reader.read(p);

Но это также приводит к ошибке в IDE:

enter image description here

1 Ответ

0 голосов
/ 14 января 2020

У меня были методы чтения и записи неправильного пути. Автор переходит от jts.geometry к wololo.geometry.

    GeometryFactory gf = new GeometryFactory();
    Double y = -36.829;
    Double x = 174.896;

    Task testTask = new Task();
    testTask.setId(new Long(01));
    testTask.setTitle("Test Task");
    Point p = gf.createPoint(new Coordinate(x, y));
    p.setSRID(4326);
    testTask.setLocation(p);
    taskRepository.save(testTask);

    ObjectMapper objectMapper = new ObjectMapper();
    String geoJson = objectMapper.writeValueAsString(testTask);

    System.out.println(geoJson);

    GeoJSONWriter writer = new GeoJSONWriter();
    org.wololo.geojson.Geometry geom = writer.write(p);

    // create and serialize a FeatureCollection
    List<Feature> features = new ArrayList<Feature>();
    Map<String, Object> properties = new HashMap<String, Object>();
    properties.put("Size", 5);
    properties.put("Area", "Auckland");
    features.add(new Feature(geom, properties));
    GeoJSONWriter writer1 = new GeoJSONWriter();
    FeatureCollection json = writer1.write(features);

Метод Writer преобразует мою точку p в объект org.wololo.geo json .geometry, который я затем могу добавить в Feature или FeaturesCollection.

...