3

I need advice. I'm to create a web application with an interactive map (lots of polygons to put on it, with markers and other map things) with a large amount of data and it is expected to have frequent changes to the said data. I have no idea of the tech stack to be used and the performance of the app is the biggest concern. (I'm thinking maybe to create an API, use MongoDB, then create a web client for it but I'm not that sure). Please give me your insights.

Comments
  • 1
    Have a Look into FireBase for RealTime changes of data.
  • 1
    Lots of them are made using leaflet.js, a very good mapping library.

    You can see the stack (and an extensive example) here: https://github.com/designgears/...
  • 0
    @melchior6 Thanks for your help! Although this is a relatively small map as I will be using the world map with lots of polygons by grouped by region. I'll still look into it. :)
  • 0
    @melchior6 I have already used leaflet.js when I implemented this the first time and it can't handle very large data sets quickly.
  • 1
    how many pins at once are on the map?
    I've got once a dataset of 22000 pins and it was very slow. Thats why we ended up chunking those pins into bubbles with numbers on it and uf you zoom to it starts to lazyload.

    I would recomend you www.meteor.com and www.mapbox.com

    or if it's really big datasets and javascript won't do it than you may do some reasearch into webassembly and openGL
  • 0
    @heyheni I did try to lazyload polygons on this matter though but the rendering is still really slow. I have a mix of polygons and markers on every region - based on my dataset - in the map of Germany. And if the whole country is visible on the map I have to show every polygon there is.
  • 2
    There's an algorithm you can use to simplify polygons. So say your polygon has 500 nodes - with simplify you can reduce this to 150 and keep the general shape.

    - this is useful for coastlines where there tends to be many many nodes because the lines are irregular.

    Indeed use Mongodb. You can send the "viewport" coordinates and get the map engine to only return nodes in that viewport. This will save you loading things that are not in view.
Add Comment