Newer
Older
task-bldg / src / main / java / osm / surveyor / task / city / DataLoader.java
  1. package osm.surveyor.task.city;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5.  
  6. import org.springframework.boot.CommandLineRunner;
  7. import org.springframework.core.io.ClassPathResource;
  8. import org.springframework.stereotype.Component;
  9.  
  10. import com.fasterxml.jackson.databind.JsonNode;
  11. import com.fasterxml.jackson.databind.ObjectMapper;
  12.  
  13. import lombok.RequiredArgsConstructor;
  14. import osm.surveyor.task.city.model.CitiesJson;
  15. import osm.surveyor.task.city.model.City;
  16. import osm.surveyor.task.city.model.CityJson;
  17. import osm.surveyor.task.util.Geojson;
  18. import osm.surveyor.task.util.Point;
  19.  
  20. @RequiredArgsConstructor
  21. @Component
  22. public class DataLoader implements CommandLineRunner {
  23. private final CityRepository repository;
  24. @Override
  25. public void run(String... args) throws Exception {
  26. // 「src/main/resources/static/city/index.json」を読み込む
  27. try (InputStream is = new ClassPathResource("static/city/index.json").getInputStream()) {
  28. CitiesJson pojo = new ObjectMapper().readValue(is, CitiesJson.class);
  29. String site = pojo.getSite();
  30. for (CityJson citiesJson : pojo.getList()) {
  31. City city = new City();
  32. city.setSite(site);
  33. city.setCitycode(citiesJson.getCode());
  34. city.setCityname(citiesJson.getName());
  35. city.setFolder(citiesJson.getPath());
  36.  
  37. Point coordinates = citiesJson.toCoordinates();
  38. city.setLng(coordinates.getLng());
  39. city.setLat(coordinates.getLat());
  40. repository.save(city);
  41. storeTask(city);
  42. }
  43. }
  44. }
  45. private void storeTask(City city) throws IOException {
  46. String folder = city.getFolder();
  47. String path = "static/city/"+ folder +"/bldg/index.geojson";
  48. try (InputStream is = new ClassPathResource(path).getInputStream()) {
  49. ObjectMapper mapper = new ObjectMapper();
  50. JsonNode node = mapper.readTree(is);
  51. Geojson geojson = new Geojson();
  52. geojson.parse(node);
  53. // TODO:
  54. System.out.println("["+ path + "] " + geojson.toString());
  55. }
  56. // TODO:
  57. }
  58. }