S
S
Sirian2012-09-02 12:53:20
Server optimization
Sirian, 2012-09-02 12:53:20

What is the best way to store geo-points (for subsequent display on the map)?

There is a need to store points (longitude and latitude) in the base. Points are tied to some other entities (for example, a point is a branch of a store).
You need to come up with a storage method so that you can quickly select points that fall within the displayed range of the map, while filtering them by some parameters (for example, the type of store).
There can be a lot of points (billions) - you need to somehow organize sharding.
Moreover, if the entire world map is displayed, it is necessary to quickly calculate the approximate number of points filtered by parameters.

Answer the question

In order to leave comments, you need to log in

4 answer(s)
A
Alexey Huseynov, 2012-09-02
@Sirian

You can try mongodb. There is a geographic index and sharding. And in general the set of these points often changes? And how acute is the issue of performance. And then it is possible to drive into memory from a file on each server. And you can also split them into tiles and precalculate the number of points in each tile. Some similarity of an OLAP hypercube will turn out.

V
Valery Osipov, 2012-09-02
@Namolem

To work with geometric data I use PostgreSQL + PostGIS
gis-lab.info/qa/postgis-work.html

V
Vladimir Chernyshev, 2012-09-02
@VolCh

Look towards elasticsearch, its geo-point type and geo-distance filter or geo-bbox

G
gnoul, 2012-09-02
@gnoul

You can try this approach.
habrahabr.ru/post/147744/
I think that even for billions of points, the Postgres + Postgis proposed above will suit you.
About filtering a large amount of data, I will refer to another post by the same author.
habrahabr.ru/post/114113/
You just need to combine these two approaches, including in the case of using mongo.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question