Replies: 2 comments 10 replies
-
The short answer is: don't render 400k points on the screen. |
Beta Was this translation helpful? Give feedback.
-
My suggestion is to use something like https://github.com/felt/tippecanoe to create a vector tileset which limits the number of points on the screen at lower zooms. tippecanoe can process your data so high zoom levels have all the details, but lower zoom levels limit the number of points For example, in my wifidb project, I export all my points to geojson with this process, then use tippecanoe to process it into something usable with maplibre with this process. That gets used in this map. Like mentioned above, without doing that, maplibre doesn't really handle large amounts of points being displayed at once. In my project I set the max for dynamic points to either 25k/50k limit, and that is a bit slow (though that partially may be the sql query speed in my case). For example, this signal map page for a access point with millions of points ( https://wifidb.net/wifidb/opt/map.php?func=exp_ap_sig&labeled=0&id=1041816&from=0&inc=50000&sig_label=none ) you can see at the bottoms of the page I added links for different ranges of points to limit to a max of 50k |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
As I stated in question, I have just over 400k+ points to render, I am fetching them from postgresql as mvt and rendering with this;
I have tried various combinations like, limiting resulting points in tiles or even result set but it always renders a little problematic, for example the following screenshot is hard limited in backend per tile;
I have also tried sending map bounding box inside transformRequest to backend but it introduces another issue, the bounding box retrieval is sometimes delayed providing last state (understandable for sure, I hoped it fetches tiles after the bounding box is changed).
I have tried rendering it all at once but it results in this issue.
What's the better way to render these points? It doesn't have to be using MVT/tile solution or an easy solution, I have control over backend too I can implement whatever fits best, it also have to be performant.
Beta Was this translation helpful? Give feedback.
All reactions