diff --git a/src/eu/simstadt/regionchooser/RegionChooserBrowser.java b/src/eu/simstadt/regionchooser/RegionChooserBrowser.java
index 4bed08e696bce6b79e52c14fe00af56d7eb3d261..e8f86239b4f3fb86b17f18c300e7836de58f96bc 100644
--- a/src/eu/simstadt/regionchooser/RegionChooserBrowser.java
+++ b/src/eu/simstadt/regionchooser/RegionChooserBrowser.java
@@ -78,7 +78,7 @@ public void extractZIPtoGML(String zipFilename) throws IOException {
BufferedWriter cityGMLOutput = Files.newBufferedWriter(extractedCityGML.toPath());
String buf = null;
while ((buf = cityGMLZipReader.readLine()) != null) {
- cityGMLOutput.write(buf.replace("srsName=\"\"", "srsName=\"EPSG:31467\""));
+ cityGMLOutput.write(buf.replace("srsName=\"\"", "srsName=\"EPSG:31467\"")); //TODO: Get EPSG:id from NovaFactory Server?
}
cityGMLZipReader.close();
cityGMLInputStream.close();
diff --git a/src/eu/simstadt/regionchooser/RegionChooserBrowserNewYorkEdition.java b/src/eu/simstadt/regionchooser/RegionChooserBrowserNewYorkEdition.java
deleted file mode 100644
index c02dd4915353c03eb7878b3f6e79325c1328b828..0000000000000000000000000000000000000000
--- a/src/eu/simstadt/regionchooser/RegionChooserBrowserNewYorkEdition.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package eu.simstadt.regionchooser;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.prefs.Preferences;
-import com.vividsolutions.jts.io.ParseException;
-import com.vividsolutions.jts.io.WKTReader;
-import javafx.beans.value.ObservableValue;
-import javafx.concurrent.Worker.State;
-import javafx.geometry.HPos;
-import javafx.geometry.VPos;
-import javafx.scene.layout.Region;
-import javafx.scene.web.WebEngine;
-import javafx.scene.web.WebView;
-import javafx.stage.FileChooser;
-import javafx.stage.Stage;
-import netscape.javascript.JSObject;
-
-
-public class RegionChooserBrowserNewYorkEdition extends Region
-{
- public class JavaScriptFXBridge
- {
- private Path repo;
- private WKTReader wktReader = new WKTReader();
-
- public JavaScriptFXBridge() {
- Preferences userPrefs = Preferences.userRoot().node("/eu/simstadt/desktop");
- String repoString = userPrefs.get("RECENT_REPOSITORY", null);
- if (repoString == null) {
- repo = Paths.get("../TestRepository");
- } else {
- repo = Paths.get(repoString);
- }
- }
-
- public void downloadRegionFromCityGML(String wktPolygon, String project, String citygml) throws IOException,
- ParseException {
- StringBuffer sb = RegionExtractorNewYorkEdition.selectRegionDirectlyFromCityGML(citygmlPath(project, citygml),
- wktPolygon);
-
- File buildingIdsFile = selectSaveFileWithDialog(project, citygml, "selected_region");
- if (buildingIdsFile != null) {
- BufferedWriter writer = Files.newBufferedWriter(buildingIdsFile.toPath());
- writer.write(sb.toString());
- writer.close();
- }
- }
-
- private File selectSaveFileWithDialog(String project, String citygml, String suffix) {
- Stage mainStage = (Stage) RegionChooserBrowserNewYorkEdition.this.getScene().getWindow();
- FileChooser fileChooser = new FileChooser();
- fileChooser.setTitle("Save CITYGML ids");
- if (project != null) {
- fileChooser.setInitialDirectory(repo.resolve(project + ".proj").toFile());
- } else {
- fileChooser.setInitialDirectory(repo.toFile());
- }
- if (suffix.isEmpty()) {
- fileChooser.setInitialFileName(citygml);
- } else {
- fileChooser.setInitialFileName(citygml.replace(".", "_" + suffix + "."));
- }
- FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("GML files (*.gml)", "*.gml");
- fileChooser.getExtensionFilters().add(extFilter);
- return fileChooser.showSaveDialog(mainStage);
- }
-
- public boolean checkIfCityGMLSAreAvailable(String project, String citygml) {
- Path p = citygmlPath(project, citygml);
- return Files.isReadable(p);
- }
-
- public void log(String text) {
- System.out.println(text);
- }
-
- private Path citygmlPath(String project, String citygml) {
- return repo.resolve(project + ".proj").resolve(citygml);
- }
- }
-
- final WebView browser = new WebView();
- final WebEngine webEngine = browser.getEngine();
-
- public RegionChooserBrowserNewYorkEdition() {
- //apply the styles
- getStyleClass().add("browser");
- String url = RegionChooserNewYorkEdition.class.getResource("website/index_nyc.html").toExternalForm();
- webEngine.load(url); // load the web page
- // process page loading
- webEngine.getLoadWorker().stateProperty().addListener(
- (ObservableValue extends State> ov, State oldState, State newState) -> {
- if (newState == State.SUCCEEDED) {
- JSObject win = (JSObject) webEngine.executeScript("window");
- JavaScriptFXBridge fxapp = new JavaScriptFXBridge();
- win.setMember("fxapp", fxapp);
- webEngine.executeScript("console.log = function(message)\n" +
- "{\n" +
- " fxapp.log(message);\n" +
- "};");
- }
- });
- //add the web view to the scene
- getChildren().add(browser);
- }
-
- @Override
- protected void layoutChildren() {
- double w = getWidth();
- double h = getHeight();
- layoutInArea(browser, 0, 0, w, h, 0, HPos.CENTER, VPos.CENTER);
- }
-
- @Override
- protected double computePrefWidth(double height) {
- return 900;
- }
-
- @Override
- protected double computePrefHeight(double width) {
- return 600;
- }
-}
diff --git a/src/eu/simstadt/regionchooser/RegionChooserNewYorkEdition.java b/src/eu/simstadt/regionchooser/RegionChooserNewYorkEdition.java
deleted file mode 100644
index 15d6a7ff4e6cddf7d98cae665598a36e775e2073..0000000000000000000000000000000000000000
--- a/src/eu/simstadt/regionchooser/RegionChooserNewYorkEdition.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package eu.simstadt.regionchooser;
-
-import java.util.logging.Logger;
-import javafx.application.Application;
-import javafx.scene.Scene;
-import javafx.scene.paint.Color;
-import javafx.stage.Stage;
-
-
-public class RegionChooserNewYorkEdition extends Application
-{
- private Scene scene;
- protected final static Logger LOGGER = Logger.getLogger(RegionChooserNewYorkEdition.class.getName());
-
- @Override
- public void start(Stage stage) {
- // create the scene
- stage.setTitle("RegionChooserNewYorkEdition");
- scene = new Scene(new RegionChooserBrowserNewYorkEdition(), 1024, 768, Color.web("#666970"));
- stage.setScene(scene);
- stage.show();
- }
-
- public static void main(String[] args) {
- launch(args);
- }
-}
-
diff --git a/src/eu/simstadt/regionchooser/RegionExtractor.java b/src/eu/simstadt/regionchooser/RegionExtractor.java
index 0aa141e4327a4f8b66128fd14c3b303d478ae405..c753fc94cf5b4a081a8320744cf2b0a6e74b3c60 100644
--- a/src/eu/simstadt/regionchooser/RegionExtractor.java
+++ b/src/eu/simstadt/regionchooser/RegionExtractor.java
@@ -57,8 +57,9 @@ static public StringBuffer selectRegionDirectlyFromCityGML(Path citygmlPath, Str
}
}
System.out.println("Buildings found in selected region " + i);
- //TODO: Don't write anything if i==0
- cityObjectMatcher.appendTail(sb);
+ if (i > 0) {
+ cityObjectMatcher.appendTail(sb);
+ }
// System.out.println(Duration.between(start, Instant.now()));
return sb;
}
diff --git a/src/eu/simstadt/regionchooser/RegionExtractorNewYorkEdition.java b/src/eu/simstadt/regionchooser/RegionExtractorNewYorkEdition.java
deleted file mode 100644
index 360b62e627c60197b4e3ba83c19b060817adbea9..0000000000000000000000000000000000000000
--- a/src/eu/simstadt/regionchooser/RegionExtractorNewYorkEdition.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package eu.simstadt.regionchooser;
-
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import com.vividsolutions.jts.geom.Coordinate;
-import com.vividsolutions.jts.geom.Geometry;
-import com.vividsolutions.jts.geom.GeometryFactory;
-import com.vividsolutions.jts.geom.Point;
-import com.vividsolutions.jts.io.ParseException;
-import com.vividsolutions.jts.io.WKTReader;
-
-
-public class RegionExtractorNewYorkEdition
-{
- static private WKTReader wktReader = new WKTReader();
-
- static public StringBuffer selectRegionDirectlyFromCityGML(Path citygmlPath, String wktPolygon)
- throws IOException, ParseException {
- // Instant start = Instant.now();
- Geometry poly = wktReader.read(wktPolygon);
- final GeometryFactory gf = new GeometryFactory();
- String s = new String(Files.readAllBytes(citygmlPath), Charset.defaultCharset());
-
- Pattern cityObjectPattern = Pattern
- .compile("(?s)<(core:)?cityObjectMember[^>]*>.*?<\\/(core:)?cityObjectMember>\\s*");
- Pattern nad83CoordinatesPattern = Pattern
- .compile("(?
+
+ Manhattan.gml
+
+
+ NewYork
+
+
+
+
+
+ 1
+ -74.019012,40.7062519,0 -74.0189717,40.7058604,0 -74.0189418,40.7057319,0 -74.0184794,40.7042805,0 -74.0172664,40.7028968,0 -74.015158,40.7011657,0 -74.015107,40.7011428,0 -74.0135003,40.7004843,0 -73.9746149,40.698469,0 -73.9698348,40.7010661,0 -73.9696604,40.7011962,0 -73.969608,40.7498934,0 -73.9696103,40.7577021,0 -73.970055,40.7578905,0 -73.9702186,40.7579597,0 -73.9706688,40.7580941,0 -73.9716929,40.7582638,0 -73.9788927,40.7582855,0 -73.9888251,40.7582835,0 -73.9925648,40.7582471,0 -73.9980335,40.7581217,0 -73.9997291,40.7580401,0 -74.0002613,40.7578747,0 -74.0065919,40.7556662,0 -74.006643,40.7555973,0 -74.0071602,40.7548532,0 -74.0087472,40.7523398,0 -74.0112393,40.7479423,0 -74.019012,40.7062519,0
+
+
+
+
+
+
+ ManhattanSmall.gml
+
+
+ NewYork
+
+
+
+
+
+ 1
+ -74.0056253,40.7294668,0 -74.0053484,40.7272316,0 -74.005111,40.7272111,0 -74.0050053,40.727202,0 -73.9968092,40.7271834,0 -73.9928453,40.7273709,0 -73.9905297,40.7275413,0 -73.9904107,40.7277055,0 -73.9903612,40.7277749,0 -73.9902701,40.7280447,0 -73.9902142,40.7327445,0 -73.9903382,40.7336279,0 -73.9909377,40.7347126,0 -73.9910923,40.7347799,0 -73.9932613,40.7348532,0 -73.99814,40.7348976,0 -74.0012625,40.7349003,0 -74.0026956,40.7348996,0 -74.004586,40.7348956,0 -74.0049082,40.7348889,0 -74.0051523,40.734853,0 -74.0052862,40.734824,0 -74.0054646,40.7331513,0 -74.0056253,40.7294668,0
+
+
+
+
+
+
+ NYC_Flatiron_Buildings_Streets_Lots_20150907.gml
+
+
+ NewYork
+
+
+ http://dmz15.rz.hft-stuttgart.de:3012/projects/4/citygmls/4/download_region
+
+
+
+
+
+ 1
+ -74.001835,40.7457938,0 -74.0015806,40.7410453,0 -74.0011234,40.7365237,0 -73.9995822,40.7354488,0 -73.9992522,40.7353105,0 -73.9945852,40.7346727,0 -73.9789847,40.7347695,0 -73.978572,40.7356558,0 -73.9775771,40.738207,0 -73.9767318,40.7435084,0 -73.9776122,40.7464249,0 -73.978865,40.7477171,0 -73.9991288,40.7492605,0 -74.0004421,40.7477074,0 -74.001835,40.7457938,0
+
+
+
+
+
diff --git a/src/eu/simstadt/regionchooser/website/data/citygml_hulls_nyc.kml b/src/eu/simstadt/regionchooser/website/data/citygml_hulls_nyc.kml
deleted file mode 100644
index 27ad775a645652ee74bf559ffbd5e2907100c5fc..0000000000000000000000000000000000000000
--- a/src/eu/simstadt/regionchooser/website/data/citygml_hulls_nyc.kml
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
- Manhattan.gml
-
-
- NewYork
-
-
-
-
-
- 1
- -74.019012,40.7062519,0 -74.0189717,40.7058604,0 -74.0189418,40.7057319,0 -74.0184794,40.7042805,0 -74.0172664,40.7028968,0 -74.015158,40.7011657,0 -74.015107,40.7011428,0 -74.0135003,40.7004843,0 -73.9746149,40.698469,0 -73.9698348,40.7010661,0 -73.9696604,40.7011962,0 -73.969608,40.7498934,0 -73.9696103,40.7577021,0 -73.970055,40.7578905,0 -73.9702186,40.7579597,0 -73.9706688,40.7580941,0 -73.9716929,40.7582638,0 -73.9788927,40.7582855,0 -73.9888251,40.7582835,0 -73.9925648,40.7582471,0 -73.9980335,40.7581217,0 -73.9997291,40.7580401,0 -74.0002613,40.7578747,0 -74.0065919,40.7556662,0 -74.006643,40.7555973,0 -74.0071602,40.7548532,0 -74.0087472,40.7523398,0 -74.0112393,40.7479423,0 -74.019012,40.7062519,0
-
-
-
-
-
-
- ManhattanSmall.gml
-
-
- NewYork
-
-
-
-
-
- 1
- -74.0056253,40.7294668,0 -74.0053484,40.7272316,0 -74.005111,40.7272111,0 -74.0050053,40.727202,0 -73.9968092,40.7271834,0 -73.9928453,40.7273709,0 -73.9905297,40.7275413,0 -73.9904107,40.7277055,0 -73.9903612,40.7277749,0 -73.9902701,40.7280447,0 -73.9902142,40.7327445,0 -73.9903382,40.7336279,0 -73.9909377,40.7347126,0 -73.9910923,40.7347799,0 -73.9932613,40.7348532,0 -73.99814,40.7348976,0 -74.0012625,40.7349003,0 -74.0026956,40.7348996,0 -74.004586,40.7348956,0 -74.0049082,40.7348889,0 -74.0051523,40.734853,0 -74.0052862,40.734824,0 -74.0054646,40.7331513,0 -74.0056253,40.7294668,0
-
-
-
-
-
-
- NYC_Flatiron_Buildings_Streets_Lots_20150907.gml
-
-
- NewYork
-
-
- http://dmz15.rz.hft-stuttgart.de:3012/projects/4/citygmls/4/download_region
-
-
-
-
-
- 1
- -74.001835,40.7457938,0 -74.0015806,40.7410453,0 -74.0011234,40.7365237,0 -73.9995822,40.7354488,0 -73.9992522,40.7353105,0 -73.9945852,40.7346727,0 -73.9789847,40.7347695,0 -73.978572,40.7356558,0 -73.9775771,40.738207,0 -73.9767318,40.7435084,0 -73.9776122,40.7464249,0 -73.978865,40.7477171,0 -73.9991288,40.7492605,0 -74.0004421,40.7477074,0 -74.001835,40.7457938,0
-
-
-
-
-
-
-
diff --git a/test/eu/simstadt/regionchooser/test/RegionExtractorTests.java b/test/eu/simstadt/regionchooser/test/RegionExtractorTests.java
index 84881bf2fa57710259f16b4075b9a7ebf858c0bd..4f49df56a3b470979479cb9f103cb256d995e208 100644
--- a/test/eu/simstadt/regionchooser/test/RegionExtractorTests.java
+++ b/test/eu/simstadt/regionchooser/test/RegionExtractorTests.java
@@ -8,7 +8,6 @@
import java.util.regex.Pattern;
import org.junit.Test;
import eu.simstadt.regionchooser.RegionExtractor;
-import eu.simstadt.regionchooser.RegionExtractorNewYorkEdition;
public class RegionExtractorTests
@@ -43,7 +42,7 @@ public void testExtract3BuildingsFromNAD83Model() throws Throwable {
String wktPolygon = "POLYGON((300259.78663489706 62835.835907766595,300230.33294975647 62792.0482567884,300213.5667431851 62770.83143720031,300183.6592861123 62730.20347659383,300252.9947486632 62676.938468840905,300273.3862256562 62701.767105345614,300257.5250407747 62715.760413539596,300308.2754543957 62805.14198211394,300259.78663489706 62835.835907766595))";
Path repo = Paths.get("../TestRepository");
Path citygmlPath = repo.resolve("NewYork.proj/ManhattanSmall.gml");
- String archGMLString = RegionExtractorNewYorkEdition.selectRegionDirectlyFromCityGML(citygmlPath, wktPolygon)
+ String archGMLString = RegionExtractor.selectRegionDirectlyFromCityGML(citygmlPath, wktPolygon)
.toString();
assertEquals(countRegexMatches(archGMLString, "<(core:)?cityObjectMember"), 2);
assertTrue(archGMLString.contains("WASHINGTON SQUARE"));
@@ -57,8 +56,8 @@ public void testExtract0BuildingsWithWrongCoordinates() throws Throwable {
String wktPolygon = "POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))";
Path repo = Paths.get("../TestRepository");
Path citygmlPath = repo.resolve("NewYork.proj/ManhattanSmall.gml");
- String archGMLString = RegionExtractorNewYorkEdition.selectRegionDirectlyFromCityGML(citygmlPath, wktPolygon)
+ String emptyGMLString = RegionExtractor.selectRegionDirectlyFromCityGML(citygmlPath, wktPolygon)
.toString();
- assertEquals(countRegexMatches(archGMLString, "<(core:)?cityObjectMember"), 0);
+ assertEquals(countRegexMatches(emptyGMLString, "<(core:)?cityObjectMember"), 0);
}
}