diff --git a/src/osm/jp/coverage/fuel/DbExist.java b/src/osm/jp/coverage/fuel/DbExist.java index cd14d37..0af32eb 100644 --- a/src/osm/jp/coverage/fuel/DbExist.java +++ b/src/osm/jp/coverage/fuel/DbExist.java @@ -4,6 +4,7 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import jp.co.areaweb.tools.csv.CsvRecord; import jp.co.areaweb.tools.database.*; import osm.jp.api.Osmdb; @@ -73,7 +74,7 @@ *
{@code * ( * node[disused:amenity=fuel](35.42,139.39,35.45,139.42); - * way[disused:amenity=fuel](35.42,139.39,35.45,139.42); + * way[amenity=fuel](35.42,139.39,35.45,139.42); * node[amenity=fuel](35.42,139.39,35.45,139.42); * (way[amenity=fuel](35.42,139.39,35.45,139.42);>;); * ); @@ -101,7 +102,7 @@ // BRANDなし → 1ポイント // FIXMEあり → 1ポイント readExisting(hsqldb, "\"where amenity='fuel'\"", POINT_BRAND | POINT_FIXME); - readExistingSub(hsqldb, "disused:amenity", "fuel", POINT_BRAND | POINT_FIXME); + //readExistingSub(hsqldb, "disused:amenity", "fuel", POINT_BRAND | POINT_FIXME); } /** @@ -187,15 +188,38 @@ try { osmdb = DatabaseTool.openDb("osmdb"); - PreparedStatement ps1 = osmdb.prepareStatement("SELECT osm_id, brand, name, disused, tags FROM planet_osm_point, planet_osm_nodes WHERE osm_id=id and ? = ANY (tags) and ? = ANY (tags)"); + PreparedStatement ps1 = osmdb.prepareStatement("SELECT osm_id, brand, name, disused, tags FROM planet_osm_point, planet_osm_nodes WHERE osm_id=id AND tags=ANY('"+ kStr +"')"); ps1.setString(1, kStr); ps1.setString(2, vStr); try (ResultSet rset1 = ps1.executeQuery()) { while (rset1.next()) { - counter += importExistingNode(hsqldb, osmdb, rset1, point); + String tags = rset1.getString("tags"); + if (tags != null) { + tags = tags.substring(1); + tags = tags.substring(0, tags.length()-1); + CsvRecord csv = new CsvRecord(); + csv.analizeRecord(tags); + + boolean key = false; + for (String str : csv) { + if (key) { + if (str.equals(vStr)) { + counter += importExistingNode(hsqldb, osmdb, rset1, point); + break; + } + key = false; + } + else { + if (str.equals(kStr)) { + key = true; + } + } + } + } } } - PreparedStatement ps2 = osmdb.prepareStatement("SELECT osm_id,brand,disused,name,ST_Y(ST_Transform(ST_Centroid(way),4326)) as lat,ST_X(ST_Transform(ST_Centroid(way),4326)) as lon FROM planet_osm_polygon, planet_osm_nodes WHERE osm_id=id and ? = ANY (tags) and ? = ANY (tags)"); + /* + PreparedStatement ps2 = osmdb.prepareStatement("SELECT osm_id,brand,disused,name,ST_Y(ST_Transform(ST_Centroid(way),4326)) as lat,ST_X(ST_Transform(ST_Centroid(way),4326)) as lon FROM planet_osm_polygon, planet_osm_nodes WHERE osm_id=id AND tags= ANY(?) AND tags=ANY(?)"); ps2.setString(1, kStr); ps2.setString(2, vStr); try (ResultSet rset2 = ps2.executeQuery()) { @@ -203,6 +227,7 @@ counter += importExistingNode(hsqldb, osmdb, rset2, point); } } +*/ System.out.println("Exists Node count = " + counter); } finally {