hhh
1 parent b93bfb1 commit 63906f350ae8448fa7a1ef5c803340998828a7f2
@hayashi hayashi authored on 27 Jan 2018
Showing 2 changed files
View
20
src/osm/jp/coverage/fuel/ToGeoJSON.java
import java.sql.PreparedStatement;
import java.sql.ResultSet;
 
import jp.co.areaweb.tools.database.DatabaseTool;
import static osm.jp.coverage.postoffice.ToGeoJSON.outputDb;
 
/**
* PostGISデータをGeoJSONファイルに出力する。
* 出力ファイル名: "fuel.json"
if (arg.equals("-slim")) {
slim = true;
}
}
Connection con = DatabaseTool.openDb("postgis");
outputDb(con, "", new File("fuel.json"), false);
outputDb(con, "WHERE fixed=0", new File("fuel0.json"), slim);
outputDb(con, "WHERE fixed>0 and fixed<50", new File("fuel1.json"), slim);
outputDb(con, "WHERE fixed>49", new File("fuel2.json"), slim);
try {
outputDb(con, "", new File("fuel.json"), false);
outputDb(con, "WHERE fixed=0", new File("fuel0.json"), slim);
outputDb(con, "WHERE fixed>0 and fixed<50", new File("fuel1.json"), slim);
outputDb(con, "WHERE fixed>49", new File("fuel2.json"), slim);
}
finally {
DatabaseTool.closeDb(con);
}
}
 
public static void outputDb(Connection con, String whereStr, File outputFile, boolean slim) throws Exception {
try (BufferedWriter ow = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFile), "UTF-8"))) {
View
94
src/osm/jp/coverage/postoffice/ToGeoJSON.java 0 → 100644
package osm.jp.coverage.postoffice;
 
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
 
import jp.co.areaweb.tools.database.DatabaseTool;
 
/**
* PostGISデータをGeoJSONファイルに出力する。
* 出力ファイル名: "fuel.json"
* テーブル名: t_fuel
* fixed OSMの周辺に存在するかどうか、存在しない場合は0,存在する場合は1。ブランド有りは50。
* geom PostGIS形式の位置情報(4612:)
* SELECT row_to_json(feature) FROM (
select 'Feature' As type, ST_AsGeoJSON(ST_Transform(t_fuel.geom,4326))::json As geometry, row_to_json((
SELECT p FROM (SELECT t_fuel.idref, t_fuel.fixed) AS p)) AS properties From t_fuel) As feature
*
* @author yuu
*
*/
public class ToGeoJSON {
public static void main (String[] argv) throws Exception {
boolean slim = false;
for (String arg : argv) {
if (arg.equals("-slim")) {
slim = true;
}
}
Connection con = DatabaseTool.openDb("postgis");
try {
outputDb(con, "", new File("fuel.json"), false);
outputDb(con, "WHERE fixed=0", new File("fuel0.json"), slim);
outputDb(con, "WHERE fixed>0 and fixed<50", new File("fuel1.json"), slim);
outputDb(con, "WHERE fixed>49", new File("fuel2.json"), slim);
}
finally {
DatabaseTool.closeDb(con);
}
}
 
public static void outputDb(Connection con, String whereStr, File outputFile, boolean slim) throws Exception {
try (BufferedWriter ow = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFile), "UTF-8"))) {
String line = "{" +
"\"type\": \"FeatureCollection\"," +
"\"features\": [";
System.out.println(line);
ow.write(line);
ow.newLine();
 
String sql = "SELECT row_to_json(feature) FROM ("
+ "select 'Feature' As type, "
+ "ST_AsGeoJSON(ST_Transform(t_fuel.geom,4326))::json As geometry, row_to_json(("
+ "SELECT p FROM (SELECT t_fuel.idref, t_fuel.fixed) AS p"
+ ")) AS properties From t_fuel "+ whereStr +" order by area,idref) As feature";
if (slim) {
sql = "SELECT row_to_json(feature) FROM ("
+ "select 'Feature' As type, ST_AsGeoJSON(ST_Transform(t_fuel.geom,4326))::json As geometry From t_fuel "+ whereStr +" order by area,idref) As feature";
}
PreparedStatement ps8 = con.prepareStatement(sql);
try (ResultSet rset8 = ps8.executeQuery()) {
boolean top = true;
while (rset8.next()) {
if (top) {
top = false;
}
else {
line = ",";
System.out.println(line);
ow.write(line);
ow.newLine();
}
line = rset8.getString(1);
System.out.print(line);
ow.write(line);
}
}
System.out.println();
ow.newLine();
line = "]}";
System.out.println(line);
ow.write(line);
ow.newLine();
ow.flush();
}
}
}