У роботі описано ключові аспекти, пов’язані з прикладною розробкою високонавантажених вебмап на основі мапи пошуку нерухомості. Під час розроблення системи важливо розуміти ключові
вимоги та адресувати їх в архітектурному рішенні. При проектуванні архітектурного рішення було
враховано такі ключові аспекти: геокодування, кластеризація, вибір провайдера мапи, фільтрація.
Відображення великої кількості об’єктів є одним із ключових завдань. У результаті запропоновано
технічне архітектурне рішення з обґрунтуванням використаних елементів системи, зважаючи на
можливі адаптації системи та економічну доцільність.
It is hard to imagine our life without maps. Maps are everywhere, even modern watches can have a map.
Essentially maps are very complicated from the engineering perspective. Displaying thousands of objects,
filtering, clustering, and making it possible on low-end devices are tough task.
We will investigate modern engineering approaches using a realistic case and provide all key details
and motivation behind the architecture. The case will be to develop a web map for searching property
all over Ukraine. Key functional requirements: all objects should be on map, filters, text search. Key
non-functional requirements: total number of objects, load time, filter time, search speed, amount of users,
the budget.
There are a lot of map libraries on the market, our research shows one most suitable for us. The map
consists of different layers. The basic layer can be provided as a raster image or in vector format. Clustering is a key feature that makes it possible to display a huge amount of points. Clustering can be performed either in the browser or on the server-side. Server-side clustering is the most scalable solution but
it creates additional challenges for filtering that is why we should provide different layers for the base
layer and for clusters.
Baseline architecture consists of the Static Content Server, Tile Server, Search Service, Geocoding Service. Tiles for Tile Server generated from OpenStreetMap data. Search Service uses Realty Database to
generate clusters and provide additional information. Realty Storage filled by Realty Fetcher Service who
takes them from open sources. Geocoding Service combines data from different providers(internal and external) in order to provide a reach user experience.
Modern engineering approaches have distinguishable features: business-oriented, customer-oriented,
heavily using open source to meet strict deadlines and budgets, scaleable, adaptable for changes, and fast
releases.