aboutsummaryrefslogtreecommitdiffstats
path: root/app/models.js
diff options
context:
space:
mode:
authorPetri Hienonen <petri.hienonen@gmail.com>2025-11-13 18:12:17 +0200
committerPetri Hienonen <petri.hienonen@gmail.com>2025-11-13 18:12:17 +0200
commite4fdd8457d2d320eea502f0801fc22eceb8947b1 (patch)
tree110530c498b276085bb409a537a3e2174d53d435 /app/models.js
parent2113f8269423932fa76ae4f822f77a07dd703266 (diff)
downloadhousing-e4fdd8457d2d320eea502f0801fc22eceb8947b1.tar.zst
Nothing
Diffstat (limited to 'app/models.js')
-rw-r--r--app/models.js78
1 files changed, 17 insertions, 61 deletions
diff --git a/app/models.js b/app/models.js
index 9ab9c84..dbca0b1 100644
--- a/app/models.js
+++ b/app/models.js
@@ -702,28 +702,6 @@ export class House {
if (filters.districts.length > 0 && !filters.districts.includes(this.district)) return false;
return true;
}
-
- /**
- * Convert to GeoJSON Feature for export/display
- * @returns {Feature}
- */
- toFeature() {
- return new Feature(
- this.coordinates,
- {
- address: this.address,
- buildingType: this.buildingType,
- constructionYear: this.constructionYear,
- district: this.district,
- id: this.id,
- livingArea: this.livingArea,
- price: this.price,
- rooms: this.rooms,
- score: this.scores.current,
- },
- this.id,
- );
- }
}
export class Weights {
@@ -760,7 +738,6 @@ export class Collection {
* @param {FeatureCollection} mainRoads
* @param {StatisticalArea[]} statisticalAreas
* @param {FeatureCollection} jokerTramStops,
- * @param {FeatureCollection} jokerTramTracks,
* @param {TrainStation[]} lightRailStops,
* @param {TrainTracks[]} lightRailTracks,
*/
@@ -804,17 +781,17 @@ export class Collection {
lightRailStops,
lightRailTracks,
] = await Promise.all([
- await DataProvider.getDistricts(),
- await DataProvider.getHouses(),
- await DataProvider.getTrainStations(),
- await DataProvider.getTrainTracks(),
- await DataProvider.getCoastline(),
- await DataProvider.getMainRoads(),
- await DataProvider.getStatisticalAreas(),
- await DataProvider.getJokerTramStops(),
- //await DataProvider.getJokerTramTracks(),
- await DataProvider.getLightRailStops(),
- await DataProvider.getLightRailTracks(),
+ DataProvider.getDistricts(),
+ DataProvider.getHouses(),
+ DataProvider.getTrainStations(),
+ DataProvider.getTrainTracks(),
+ DataProvider.getFeaturesFromCouch("Seutukartta_meren_rantaviiva"),
+ DataProvider.getFeaturesFromCouch("Seutukartta_liikenne_paatiet"),
+ DataProvider.getStatisticalAreas(),
+ await DataProvider.getFeaturesFromCouch("RaideJokeri_pysakit"),
+ //DataProvider.getJokerTramTracks(),
+ DataProvider.getLightRailStops(),
+ DataProvider.getLightRailTracks(),
]);
return new Collection(
districts,
@@ -874,24 +851,17 @@ export class DataProvider {
const result = await response.json();
const features = result.rows
.map((row) => {
- return row.doc.geometry && "type" in row.doc.geometry
- ? new Feature(Geometry.fromGeoJSON(row.doc.geometry), row.doc.properties, row.doc._id)
- : null;
+ if (row.doc.geometry && "type" in row.doc.geometry) {
+ const geom = Geometry.fromGeoJSON(row.doc.geometry);
+ return new Feature(geom, Geometry.toEnum(geom), row.doc.properties, row.doc._id);
+ } else {
+ return null;
+ }
})
.filter((x) => x !== null);
return new FeatureCollection(features);
}
- /** @returns {Promise<FeatureCollection>} */
- static async getCoastline() {
- return await DataProvider.getFeaturesFromCouch("Seutukartta_meren_rantaviiva");
- }
-
- /** @returns {Promise<FeatureCollection>} */
- static async getMainRoads() {
- return await DataProvider.getFeaturesFromCouch("Seutukartta_liikenne_paatiet");
- }
-
/** @returns {Promise<District[]>} */
static async getDistricts() {
return District.fromFeatureCollection(
@@ -928,11 +898,6 @@ export class DataProvider {
}
/** @returns {Promise<FeatureCollection>} */
- static async getJokerTramStops() {
- return await DataProvider.getFeaturesFromCouch("RaideJokeri_pysakit");
- }
-
- /** @returns {Promise<FeatureCollection>} */
static async getJokerTramTracks() {
return await DataProvider.getFeaturesFromCouch("RaideJokeri_ratalinja");
}
@@ -973,15 +938,6 @@ export class DataProvider {
return [];
}
}
-
- /**
- * @param {House[]} houses
- * @returns {FeatureCollection}
- */
- static housesToCollection(houses) {
- const features = houses.map((house) => house.toFeature());
- return new FeatureCollection(features);
- }
}
export class ScoringEngine {