diff --git a/src/osm/jp/api/Osmdb.java b/src/osm/jp/api/Osmdb.java
index 0bb9e84..59c1d0f 100644
--- a/src/osm/jp/api/Osmdb.java
+++ b/src/osm/jp/api/Osmdb.java
@@ -1,6 +1,5 @@
package osm.jp.api;
-import java.net.*;
import java.io.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -8,6 +7,7 @@
import java.sql.SQLException;
import java.sql.SQLIntegrityConstraintViolationException;
import java.sql.SQLSyntaxErrorException;
+import jp.co.areaweb.tools.csv.CsvRecord;
import jp.co.areaweb.tools.database.DatabaseTool;
import org.hsqldb.HsqlException;
import org.w3c.dom.NamedNodeMap;
@@ -76,50 +76,13 @@
}
public static final int POINT_NO = 0; // 評価ポイント無し→ score=50
- public static final int POINT_FIXME = 1; // 評価ポイント無し→ score=50
+ public static final int POINT_FIXME = 1; // 評価ポイント|!(fixme=null) → score=1
public static final int POINT_BRAND = 2; // 評価ポイント|brand=null → score=1
public static final int POINT_NAME = 4; // 評価ポイント|name=null → score=1
+ public static final int POINT_BUS = 8; // 評価ポイント|!(bus=yes) → score=0
- /**
- * File(HttpPOST.EXIST_FILE)を読み取って、データベースに反映させる。
- * その際に、OSMノードを評価し、scoreを算定する
- *
- * @param hsqldb 反映先のデータベースコネクタ(HSQLDB)
- * @param sqlWhere POI条件
- * @param point 評価ポイント[POINT_NO|POINT_BRAND|POINT_NAME] 1: 'brand' 2:'name'
- * @throws Exception エラー
- */
- public void readExisting(Connection hsqldb, String sqlWhere, int point) throws Exception {
- Connection osmdb = null;
- long counter = 0L;
- try {
- osmdb = DatabaseTool.openDb("osmdb");
-
- PreparedStatement ps1 = osmdb.prepareStatement("select osm_id,brand,disused,name,ST_Y(ST_Transform(way,4326)) as lat,ST_X(ST_Transform(way,4326)) as lon from planet_osm_point " + sqlWhere);
- try (ResultSet rset1 = ps1.executeQuery()) {
- while (rset1.next()) {
- counter += importExistingNode(hsqldb, rset1, point);
- }
- }
-
- 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 " + sqlWhere);
- try (ResultSet rset2 = ps2.executeQuery()) {
- while (rset2.next()) {
- counter += importExistingNode(hsqldb, rset2, point);
- }
- }
- System.out.println("Exists Node count = " + counter);
- }
- finally {
- DatabaseTool.closeDb(osmdb);
- }
-
- //readAreaNodes(hsqldb, root);
-
- }
-
- int importExistingNode(Connection hsqldb, ResultSet rset, int point) throws IOException, SQLException {
+ public int importExistingNode(Connection hsqldb, Connection osmdb, ResultSet rset, int point) throws IOException, SQLException {
String osmidStr = rset.getString("osm_id");
String latStr = rset.getString("lat");
@@ -135,27 +98,76 @@
if (((point & POINT_NAME) != 0) && isNull(nameStr)) {
score = 1;
}
- if (((point & POINT_FIXME) != 0) && !isNull(fixmeStr)) {
- score = 1;
+
+ boolean fixme = false;
+ boolean busYes = false;
+ if (((point & (POINT_FIXME | POINT_BUS)) != 0)) {
+ PreparedStatement ps8 = osmdb.prepareStatement("SELECT * FROM planet_osm_nodes where id='"+ osmidStr +"'");
+ try (ResultSet rset8 = ps8.executeQuery()) {
+ while (rset8.next()) {
+ String tags = rset8.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 = true;
+ boolean bus = false;
+ for (String str : csv) {
+ if (key) {
+ if (str.startsWith("fixme")) {
+ fixme = true;
+ }
+ if (str.equals("bus")) {
+ bus = true;
+ }
+ key = false;
+ }
+ else {
+ if (bus) {
+ if (str.equals("yes")) {
+ busYes = true;
+ }
+ bus = false;
+ }
+ key = true;
+ }
+ }
+
+ System.out.println(tags);
+ }
+ }
+ }
+
+ if (((point & POINT_FIXME) != 0) && fixme) {
+ score = 1;
+ }
+ if (((point & POINT_BUS) != 0) && !busYes) {
+ score = 0;
+ }
+ }
+
+ if (score > 0) {
+ // idref と brandStr をデータベースに格納する
+ System.out.println("INSERT INTO "+ TABLE_NAME +" (idref,lat,lon,score,name) VALUES ("+ osmidStr +","+ latStr +","+ lonStr+","+ Integer.toString(score) +",'"+ nameStr +"')N");
+ try (PreparedStatement ps5 = hsqldb.prepareStatement("INSERT INTO "+ TABLE_NAME +" (idref,lat,lon,score,name) VALUES (?,?,?,?,?)")) {
+ ps5.setString(1, osmidStr);
+ ps5.setDouble(2, Double.parseDouble(latStr));
+ ps5.setDouble(3, Double.parseDouble(lonStr));
+ ps5.setInt(4, score);
+ ps5.setString(5, nameStr);
+ ps5.executeUpdate();
+ return 1;
+ }
+ catch (HsqlException | SQLIntegrityConstraintViolationException e) {
+ // integrity constraint violation: unique constraint or index violation; SYS_PK_10069 table: FUEL_EXIST
+ // [HsqlException]は、無視する
+ // integrity constraint violation: unique constraint or index violation; SYS_PK_10069 table: FUEL_EXIST
+ // [SQLIntegrityConstraintViolationException]は、無視する
+ }
}
- // idref と brandStr をデータベースに格納する
- System.out.println("INSERT INTO "+ TABLE_NAME +" (idref,lat,lon,score,name) VALUES ("+ osmidStr +","+ latStr +","+ lonStr+","+ Integer.toString(score) +",'"+ nameStr +"')N");
- try (PreparedStatement ps5 = hsqldb.prepareStatement("INSERT INTO "+ TABLE_NAME +" (idref,lat,lon,score,name) VALUES (?,?,?,?,?)")) {
- ps5.setString(1, osmidStr);
- ps5.setDouble(2, Double.parseDouble(latStr));
- ps5.setDouble(3, Double.parseDouble(lonStr));
- ps5.setInt(4, score);
- ps5.setString(5, nameStr);
- ps5.executeUpdate();
- return 1;
- }
- catch (HsqlException | SQLIntegrityConstraintViolationException e) {
- // integrity constraint violation: unique constraint or index violation; SYS_PK_10069 table: FUEL_EXIST
- // [HsqlException]は、無視する
- // integrity constraint violation: unique constraint or index violation; SYS_PK_10069 table: FUEL_EXIST
- // [SQLIntegrityConstraintViolationException]は、無視する
- }
return 0;
}
@@ -163,10 +175,7 @@
if (vstr == null) {
return true;
}
- if (vstr.trim().length() < 1) {
- return true;
- }
- return false;
+ return (vstr.trim().length() < 1);
}
int readAreaNodes(Connection con, Node node) throws IOException, SQLException {
diff --git a/src/osm/jp/coverage/busstop/DbExistBusstop.java b/src/osm/jp/coverage/busstop/DbExistBusstop.java
index 188310a..eed4a9a 100644
--- a/src/osm/jp/coverage/busstop/DbExistBusstop.java
+++ b/src/osm/jp/coverage/busstop/DbExistBusstop.java
@@ -1,8 +1,5 @@
package osm.jp.coverage.busstop;
-import osm.jp.api.HttpPOST;
-import osm.jp.api.Japan;
-
import javax.xml.parsers.*;
import javax.xml.transform.TransformerException;
import org.xml.sax.*;
@@ -11,24 +8,14 @@
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
import java.sql.SQLException;
-import java.text.SimpleDateFormat;
import jp.co.areaweb.tools.database.*;
+import osm.jp.api.Osmdb;
-public class DbExistBusstop extends HttpPOST {
-
- String filter = "";
- String urlStr = "";
-
- public static final boolean DB_INIT = false;
- public static boolean DROP = false;
-
- // 近くのバス停を探す範囲(バス停を中心としたNEER×2m四方の領域
- static boolean update = false; // '-update'オプション postgisデータの更新を行う
- static boolean noget = false; // '-noget'オプション OSM既存データのGETを行わない
-
- public static SimpleDateFormat timeStampFmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
+public class DbExistBusstop extends Osmdb {
/**
* 既存のOSMバス停を読み込む
@@ -49,12 +36,12 @@
* @throws TransformerException
* @throws SAXException
* @throws ParserConfigurationException */
- public static void main(String[] args) throws FileNotFoundException, ClassNotFoundException, SQLException, IOException, ParserConfigurationException, SAXException, TransformerException
+ public static void main(String[] args) throws Exception
{
Connection conHsql = null;
try {
conHsql = DatabaseTool.openDb("database");
- HttpPOST.create(conHsql);
+ create(conHsql);
/**
* 既存のOSMバス停を読み込む
@@ -95,24 +82,84 @@
* @throws ParserConfigurationException
* @throws SAXException
*/
- public void getJapanCapabilities(Connection conHsql) throws MalformedURLException, ProtocolException, IOException, ClassNotFoundException, SQLException, ParserConfigurationException, SAXException {
- for (Japan area : Japan.all) {
- StringBuilder queryText = new StringBuilder();
- queryText.append("(");
- queryText.append(" node[highway=bus_stop]("+ area.getSWNE() +");");
- queryText.append(" node[highway=\"disused:bus_stop\"]("+ area.getSWNE() +");");
- queryText.append(" node[public_transport=platform][bus=yes]("+ area.getSWNE() +");");
- queryText.append(" node[public_transport=stop_position][bus=yes]("+ area.getSWNE() +");");
- queryText.append(" node[amenity=bus_station]("+ area.getSWNE() +");");
- queryText.append(" (way[amenity=bus_station]("+ area.getSWNE() +");>;);");
- queryText.append(");");
- queryText.append("out;");
- HttpPOST.getQuery(queryText.toString());
+ public void getJapanCapabilities(Connection conHsql) throws Exception {
+ // 通常 → 50ポイント
+ // NAMEなし → 1ポイント
+ // FIXMEあり → 1ポイント
+ readExisting(conHsql, null, POINT_NAME | POINT_FIXME);
+ }
+
+ // ノード: 厚木ナイロン (1995040609) 場所: 35.4433312, 139.3932098 public_transport=stop_position,bus=yes
+ // ノード: 海老名高校前 (2043102034) 場所: 35.4435042, 139.3878934 highway=bus_stop
+ // ノード: 4940018338 場所: 35.5909251, 139.1498642 highway=bus_stop, name=null, bus=null,public_transport=platform
+ // ノード: 八幡前 (3152604023) 場所: 33.9808001, 133.3123441 fixme有り
+
+ /**
+ * File(HttpPOST.EXIST_FILE)を読み取って、データベースに反映させる。
+ * その際に、OSMノードを評価し、scoreを算定する
+ *
+ * @param hsqldb 反映先のデータベースコネクタ(HSQLDB)
+ * @param sqlWhere POI条件
+ * @param point 評価ポイント[POINT_NO|POINT_BRAND|POINT_NAME] 1: 'brand' 2:'name'
+ * @throws Exception エラー
+ */
+ public void readExisting(Connection hsqldb, String sqlWhere, int point) throws Exception {
+ Connection osmdb = null;
+ long counter = 0L;
+ try {
+ osmdb = DatabaseTool.openDb("osmdb");
- // 通常 → 50ポイント
- // NAMEなし → 1ポイント
- // FIXMEあり → 1ポイント
- readExistingFile(conHsql, HttpPOST.POINT_NAME | HttpPOST.POINT_FIXME);
+ String sql = "select osm_id,brand,disused,name";
+
+ StringBuilder whereText0 = new StringBuilder();
+ whereText0.append("where (highway='disused:bus_stop'");
+ whereText0.append(")");
+ PreparedStatement ps0 = osmdb.prepareStatement(sql + ",ST_Y(ST_Transform(way,4326)) as lat,ST_X(ST_Transform(way,4326)) as lon from planet_osm_point " + whereText0.toString());
+ try (ResultSet rset1 = ps0.executeQuery()) {
+ while (rset1.next()) {
+ counter += importExistingNode(hsqldb, osmdb, rset1, 0);
+ }
+ }
+
+ StringBuilder whereText1 = new StringBuilder();
+ whereText1.append("where (highway='bus_stop'");
+ whereText1.append(" or amenity='bus_station'");
+ whereText1.append(")");
+ PreparedStatement ps1 = osmdb.prepareStatement(sql + ",ST_Y(ST_Transform(way,4326)) as lat,ST_X(ST_Transform(way,4326)) as lon from planet_osm_point " + whereText1.toString());
+ try (ResultSet rset1 = ps1.executeQuery()) {
+ while (rset1.next()) {
+ counter += importExistingNode(hsqldb, osmdb, rset1, point);
+ }
+ }
+
+ StringBuilder whereText = new StringBuilder();
+ whereText.append("where (public_transport='platform'");
+ whereText.append(" or public_transport='stop_position'");
+ whereText.append(")");
+ PreparedStatement ps = osmdb.prepareStatement(sql + ",ST_Y(ST_Transform(way,4326)) as lat,ST_X(ST_Transform(way,4326)) as lon from planet_osm_point " + whereText.toString());
+ try (ResultSet rset1 = ps.executeQuery()) {
+ while (rset1.next()) {
+ counter += importExistingNode(hsqldb, osmdb, rset1, point | POINT_BUS);
+ }
+ }
+
+ StringBuilder whereText2 = new StringBuilder();
+ whereText2.append("where (amenity='bus_station'");
+ whereText2.append(")");
+ PreparedStatement ps2 = osmdb.prepareStatement(sql +",ST_Y(ST_Transform(ST_Centroid(way),4326)) as lat,ST_X(ST_Transform(ST_Centroid(way),4326)) as lon from planet_osm_polygon " + whereText2.toString());
+ try (ResultSet rset2 = ps2.executeQuery()) {
+ while (rset2.next()) {
+ counter += importExistingNode(hsqldb, osmdb, rset2, point);
+ }
+ }
+
+ System.out.println("Exists Node count = " + counter);
}
+ finally {
+ DatabaseTool.closeDb(osmdb);
+ }
+
+ //readAreaNodes(hsqldb, root);
+
}
}
\ No newline at end of file
diff --git a/src/osm/jp/coverage/fuel/DbExist.java b/src/osm/jp/coverage/fuel/DbExist.java
index a7cd4ef..b5e8fa6 100644
--- a/src/osm/jp/coverage/fuel/DbExist.java
+++ b/src/osm/jp/coverage/fuel/DbExist.java
@@ -124,4 +124,39 @@
}
}
+ /**
+ * File(HttpPOST.EXIST_FILE)を読み取って、データベースに反映させる。
+ * その際に、OSMノードを評価し、scoreを算定する
+ *
+ * @param hsqldb 反映先のデータベースコネクタ(HSQLDB)
+ * @param sqlWhere POI条件
+ * @param point 評価ポイント[POINT_NO|POINT_BRAND|POINT_NAME] 1: 'brand' 2:'name'
+ * @throws Exception エラー
+ */
+ public void readExisting(Connection hsqldb, String sqlWhere, int point) throws Exception {
+ Connection osmdb = null;
+ long counter = 0L;
+ try {
+ osmdb = DatabaseTool.openDb("osmdb");
+
+ PreparedStatement ps1 = osmdb.prepareStatement("select osm_id,brand,disused,name,ST_Y(ST_Transform(way,4326)) as lat,ST_X(ST_Transform(way,4326)) as lon from planet_osm_point " + sqlWhere);
+ try (ResultSet rset1 = ps1.executeQuery()) {
+ while (rset1.next()) {
+ counter += importExistingNode(hsqldb, osmdb, rset1, point);
+ }
+ }
+
+ 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 " + sqlWhere);
+ try (ResultSet rset2 = ps2.executeQuery()) {
+ while (rset2.next()) {
+ counter += importExistingNode(hsqldb, osmdb, rset2, point);
+ }
+ }
+
+ System.out.println("Exists Node count = " + counter);
+ }
+ finally {
+ DatabaseTool.closeDb(osmdb);
+ }
+ }
}
\ No newline at end of file
diff --git a/test/osm/jp/coverage/busstop/DbExistBusstopTest.java b/test/osm/jp/coverage/busstop/DbExistBusstopTest.java
new file mode 100644
index 0000000..9734a1e
--- /dev/null
+++ b/test/osm/jp/coverage/busstop/DbExistBusstopTest.java
@@ -0,0 +1,224 @@
+package osm.jp.coverage.busstop;
+
+import java.io.File;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import jp.co.areaweb.tools.database.DatabaseTool;
+import static org.hamcrest.CoreMatchers.is;
+import org.junit.*;
+import static org.junit.Assert.*;
+import static osm.jp.api.Osmdb.create;
+
+/**
+ *
+ * @author yuu
+ */
+public class DbExistBusstopTest {
+ @Before
+ public void setUp() throws Exception {
+ File dir = new File("database");
+ if (dir.exists()) {
+ if (dir.isDirectory()) {
+ dir.deleteOnExit();
+ }
+ else {
+ throw new Exception("'database' is not directory.");
+ }
+ }
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ @Test
+ public void test01_hsqldbの生成確認() {
+ Connection con = null;
+ try {
+ // DB.tableを作成
+ con = DatabaseTool.openDb("database");
+ create(con);
+ }
+ catch (ClassNotFoundException ex) {
+ fail();
+ } catch (SQLException ex) {
+ fail();
+ } catch (IOException ex) {
+ fail();
+ } finally {
+ if (con != null) {
+ DatabaseTool.closeDb(con);
+ }
+ }
+
+ File dir = new File("database");
+ assertTrue(dir.exists());
+ assertTrue(dir.isDirectory());
+
+ Connection hsqldb = null;
+ try {
+ hsqldb = DatabaseTool.openDb("database");
+
+ PreparedStatement ps8 = hsqldb.prepareStatement("SELECT count(*) FROM AREA_NODE");
+ try (ResultSet rset8 = ps8.executeQuery()) {
+ if (rset8.next()) {
+ long cnt = rset8.getLong(1);
+ assertThat(Long.toString(cnt), is("0"));
+ }
+ else {
+ fail();
+ }
+ }
+
+ PreparedStatement ps1 = hsqldb.prepareStatement("SELECT count(*) FROM OSM_EXIST");
+ try (ResultSet rset1 = ps1.executeQuery()) {
+ if (rset1.next()) {
+ long cnt = rset1.getLong(1);
+ assertThat(Long.toString(cnt), is("0"));
+ }
+ else {
+ fail();
+ }
+ }
+
+ } catch (ClassNotFoundException ex) {
+ Logger.getLogger(DbExistBusstopTest.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (SQLException ex) {
+ Logger.getLogger(DbExistBusstopTest.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IOException ex) {
+ Logger.getLogger(DbExistBusstopTest.class.getName()).log(Level.SEVERE, null, ex);
+ } finally {
+ DatabaseTool.closeDb(hsqldb);
+ }
+ }
+
+ @Test
+ public void test02_busstop() {
+ try {
+ String[] args = new String[0];
+ DbExistBusstop.main(args);
+ }
+ catch (Exception ex) {
+ fail(ex.toString());
+ }
+
+ File dir = new File("database");
+ assertTrue(dir.exists());
+ assertTrue(dir.isDirectory());
+
+ Connection hsqldb = null;
+ try {
+ hsqldb = DatabaseTool.openDb("database");
+
+ PreparedStatement ps1 = hsqldb.prepareStatement("SELECT count(*) FROM OSM_EXIST");
+ try (ResultSet rset1 = ps1.executeQuery()) {
+ if (rset1.next()) {
+ long cnt = rset1.getLong(1);
+ assertThat((cnt > 0), is(true));
+ }
+ else {
+ fail();
+ }
+ }
+
+ // ノード: 八幡前 (3152604023) 場所: 33.9808001, 133.3123441 fixme有り
+ ps1 = hsqldb.prepareStatement("SELECT score,name,lat,lon FROM OSM_EXIST where idref='3152604023'");
+ try (ResultSet rset1 = ps1.executeQuery()) {
+ if (rset1.next()) {
+ // fixme有り
+ assertThat(rset1.getInt("score"), is(1));
+ assertThat(checkRenge(rset1, "33.9808001", "133.3123441"), is(true));
+ }
+ else {
+ fail();
+ }
+ }
+
+ // ノード: 4940018338 場所: 35.5909251, 139.1498642 highway=bus_stop, name=null, bus=null,public_transport=platform
+ ps1 = hsqldb.prepareStatement("SELECT score,name,lat,lon FROM OSM_EXIST where idref='4940018338'");
+ try (ResultSet rset1 = ps1.executeQuery()) {
+ if (rset1.next()) {
+ // nameなし
+ assertThat(rset1.getInt("score"), is(1));
+ assertThat(checkRenge(rset1, "35.5909251", "139.1498642"), is(true));
+ }
+ else {
+ fail();
+ }
+ }
+
+ // ノード: 海老名高校前 (2043102034) 場所: 35.4435042, 139.3878934 highway=bus_stop
+ ps1 = hsqldb.prepareStatement("SELECT score,name,lat,lon FROM OSM_EXIST where idref='2043102034'");
+ try (ResultSet rset1 = ps1.executeQuery()) {
+ if (rset1.next()) {
+ assertThat(rset1.getInt("score"), is(50));
+ assertThat(checkRenge(rset1, "35.4435042", "139.3878934"), is(true));
+ }
+ else {
+ fail();
+ }
+ }
+
+ // ノード: 厚木ナイロン (1995040609) 場所: 35.4433312, 139.3932098 public_transport=stop_position,bus=yes
+ ps1 = hsqldb.prepareStatement("SELECT score,name,lat,lon FROM OSM_EXIST where idref='1995040609'");
+ try (ResultSet rset1 = ps1.executeQuery()) {
+ if (rset1.next()) {
+ assertThat(rset1.getInt("score"), is(50));
+ assertThat(checkRenge(rset1, "35.4433312", "139.3932098"), is(true));
+ }
+ else {
+ fail();
+ }
+ }
+
+ // ウェイ: 国分寺台第12 (154659062) bus_station
+ ps1 = hsqldb.prepareStatement("SELECT score,name,lat,lon FROM OSM_EXIST where idref='154659062'");
+ try (ResultSet rset1 = ps1.executeQuery()) {
+ if (rset1.next()) {
+ assertThat(rset1.getInt("score"), is(50));
+ }
+ else {
+ fail();
+ }
+ }
+
+ } catch (ClassNotFoundException ex) {
+ Logger.getLogger(DbExistBusstopTest.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (SQLException ex) {
+ Logger.getLogger(DbExistBusstopTest.class.getName()).log(Level.SEVERE, null, ex);
+ } catch (IOException ex) {
+ Logger.getLogger(DbExistBusstopTest.class.getName()).log(Level.SEVERE, null, ex);
+ } finally {
+ DatabaseTool.closeDb(hsqldb);
+ }
+ }
+
+ boolean checkRenge(ResultSet rset, String latStr, String lonStr) throws SQLException {
+ if (checkRenge(rset.getDouble("lat"), latStr)) {
+ if (checkRenge(rset.getDouble("lon"), lonStr)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ boolean checkRenge(double d1, String str) throws SQLException {
+ double base = Double.parseDouble(str);
+ double up = d1 + 0.00000009D;
+ double down = d1 - 0.00000009D;
+ boolean ret = true;
+ if (Double.compare(base, up) > 0) {
+ ret = false;
+ }
+ if (Double.compare(base, down) < 0) {
+ ret = false;
+ }
+ System.out.println("d1: "+ d1 +" : "+ str +" --> "+ (ret ? "IN" : "out"));
+ return ret;
+ }
+}
diff --git a/test/osm/jp/coverage/fuel/DbExistTest.java b/test/osm/jp/coverage/fuel/DbExistTest.java
index e661d11..ad851f4 100644
--- a/test/osm/jp/coverage/fuel/DbExistTest.java
+++ b/test/osm/jp/coverage/fuel/DbExistTest.java
@@ -104,7 +104,7 @@
DbExist.main(args);
}
catch (Exception ex) {
- fail();
+ fail(ex.toString());
}
File dir = new File("database");