House price prediciton project. Predicitions are rendered as colored heat map. Project based on Angular 6.2.1 + ThreeJS. This project was generated with Angular CLI version 6.2.1.
This project uses free and public source OSM data for map visualization. Also project uses collected data about real estate prices and show houses/appertments for sale as a points on map. Project create pric prediction model for any map point and display this model as a colored gradient map. Details will be written later.
You can try live demo: http://d-inter.ru/private/Vlad/nirs/2018_HousePrice/HsPrcAng/
HousePriceHeatMap project can be used for approximate price predition in any geographic point inside supporeted cities. Now St.Petersburg (Russia) is supported. Later other major cities will be added. Also this project can be used as a investment estimation tool: see how real estate prices are changing during time. You can estimate is some area is encreasing or stable in terms of square meter pricing. Also this is very research project and you can try different approximation / prediction models to see prices heat map. Unlike static heat map, this application allow to browse map like usual Google map or Yandex map (zoom an pan functionality). This solution can heavy and intensively used by real estate agencies, individuals and governmenment, map organizations. Probably, this is the first interactive web app with map render and interactive heat map visualization project.
For fast rendering we have used Three JS library for rendering via WebGL. This allow to reach impressive fast render speed even on mobile devices and use huge geometry primitives dataset.
- Only russian language is supported in UI
- Only St.Petersburg (Russia) can be loaded
- Heat map is under implementation now
- Map data size is not optimized (used simple text json file)
- Osm to internal data converter is not implemented here, inside project
- Houses/Building data from OSM is not supported yet (need to shrink down data size)
- Unit tests are not implemented yet.
- Web app can be slow on some mobile devices (with simple video card)
More details will be written later
We have used following software, databases and articles for our project:
- Osm major world cittes database
- Angular 6.1 framework
- Inverse Distance Weighting (IDW) idea
- Build heat map on the IDW base
- Build heat map color gradients
- Kernel Density Estimation (KDE) and build heat maps
- Iterative heat map build
Download link: NodeJS.
Version not below than v.10.10.0 is required.
After NodeJS installation please check that everything is installed correctly (for example, PATH ), using command:
node --version
Stdout should be v10.10.0 (or higher).
Run npm install to load all requied Node packages. They will appear in node_modules folder.
Run ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.
Run ng serve --open to start dev server and immediately open browser with url http://localhost:4200/.
Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.
Run ng lint to compile project source codes.
Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the --prod flag for a production build.
Better way for final deployment is command:
ng build --prod --base-href https://your.site/somefolder/
Run ng test to execute the unit tests via Karma.
Run ng e2e to execute the end-to-end tests via Protractor.
To get more help on the Angular CLI use ng help or go check out the Angular CLI README.
