diff options
| author | Petri Hienonen <petri.hienonen@gmail.com> | 2025-11-13 18:12:17 +0200 |
|---|---|---|
| committer | Petri Hienonen <petri.hienonen@gmail.com> | 2025-11-13 18:12:17 +0200 |
| commit | e4fdd8457d2d320eea502f0801fc22eceb8947b1 (patch) | |
| tree | 110530c498b276085bb409a537a3e2174d53d435 /app/models.js | |
| parent | 2113f8269423932fa76ae4f822f77a07dd703266 (diff) | |
| download | housing-e4fdd8457d2d320eea502f0801fc22eceb8947b1.tar.zst | |
Nothing
Diffstat (limited to 'app/models.js')
| -rw-r--r-- | app/models.js | 78 |
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 { |
