[OpenLayers-Users] a whole LOT of points!

Stephen Woodbridge woodbri at swoodbridge.com
Mon Jan 26 14:15:24 PST 2015


On 1/26/2015 4:40 PM, zach cruise wrote:
> On 1/25/15, Max Demars <burton449geo at gmail.com> wrote:
>> I dont know if you are using Openlayers 2 or 3 but both has points
>> clustering strategies at client side:
>>
>> see: http://openlayers.org/en/v3.0.0/examples/cluster.html
>
> from http://openlayers.org/en/v3.0.0/examples/cluster.js, it is
> randomly creating points. what if it had to load points already
> created in memory? can ol2 (or 3) similarly cluster a 200 mb geojson
> file?
>
>> or this: http://stackoverflow.com/a/6642203
>
>
> On 1/25/15, Phil Scadden <p.scadden at gns.cri.nz> wrote:
>> On 24/01/2015 11:01 a.m., zach cruise wrote:
>>> any real world ideas?
>> In real world, processing a million points in a browser doesnt happen.
>> JS is slow, download time is slow, execution environment in a browser is
>> extremely limited. (in my experience, doing more than 1000 points of
>> geometry is unacceptably slow in single threaded). Easiest approach for
>> doing this in a browser begins with figuring how not to have vector
>> data.
>
> i want to avoid maptiler but what are the options for creating custom
> tiles in ol?
>
>
> On 1/25/15, Stephen Woodbridge <woodbri at swoodbridge.com> wrote:
>> On 1/25/2015 4:03 PM, Phil Scadden wrote:
>>> On 24/01/2015 11:01 a.m., zach cruise wrote:
>>>> any real world ideas?
>>> In real world, processing a million points in a browser doesnt happen.
>>> JS is slow, download time is slow, execution environment in a browser is
>>> extremely limited. (in my experience, doing more than 1000 points of
>>> geometry is unacceptably slow in single threaded). Easiest approach for
>>> doing this in a browser begins with figuring how not to have vector
>>> data. If this is an offline application, you want to look at local
>>> server or local database. If you want to go extreme, then maybe look at
>>> html5 web worker api to go multithreaded but I suspect you are up for
>>> some pretty major rewrites of OL.
>>
>> I would concur with this.
>> What is the basis for the requirement to do all this in the browser?
>> Is it an online or offline application?
>
> online
>
>> If you have a million points, they can't all be displayed on the screen
>> at the same time or I would expect that they would all overlap to the
>> point that you would be hard pressed to display them all in a useful
>> manner where the user could differentiate them.
>>
>> If you are displaying a subset then why not load just the ones you need?
>> using something like the bounding box strategy.
>
> agree. but how does clustering happen with a 200 mb geojson file?
> doesn't it need to load everything in memory first? if it is chunked,
> how does ol know what chunk to call next (or asynchronous streaming of
> vectiles as max said.
> http://mattmakesmaps.com/blog/2013/10/09/tilestache-rendering-topojson/
> uses a postgis backend that i can't use)?

Ok the idea behind vector tiles is that you do not load the whole 200mb 
geojson file, you break it into smaller regular tiles like google raster 
tiles for maps. Each of these has a name that maps to its extents and 
these are loaded as needed based on your view extents. and they can 
cached by the browser if they are static.

And for zoom levels you might create tiles, that are pre-clustered, so 
as you zoom out the tiles are already in a clustered geojson format, so 
you only display the clustered points, but each of these has all the 
underlying data or statistics that you need. This obvious assume that 
you have some what to tile your 200md geojson file into smaller regular 
tiles, and that you have some way to pre cluster you tiles if you want that.

-Steve

> On 1/26/15, Umberto Nicoletti <umberto.nicoletti at gmail.com> wrote:
>> http://gis.stackexchange.com/questions/18572/openlayers-alternatives-supporting-more-client-side-features/18591#18591
>
> this talks about a timer and filtering the visible points server-side
> by configuring a strategy option to the vector layer. i can't filter
> server-side, just have a 200 mb geojson to map.
>
>
> On 1/26/15, Phil Scadden <p.scadden at gns.cri.nz> wrote:
>>
>>> Use the OL3/Cesium(WebGL) stuff like Bart said.  Using the Cesium 3D
>>> engine,
>>> you can display 5-10million+ points using the Cesium pointGeometry branch
>> Count me skeptical, but I can see the WebGL might render point much
>> faster than drawing on a canvas - once you have got the points into
>> memory in the first place. Downloading as json  and then interpreting
>> this into memory for 1M points is going to be slow. I note big data
>> going to cesium like terrain server support or 3D models are in packed
>> binary formats instead with json shell and are passed directly to host
>> graphics subsystem. If you can organize your data like that, you are
>> good to go but I am not sure you can then leverage advantages of vector
>> formats in openlayers.
>
> agree with phil. dom ready takes 15 sec.
> _______________________________________________
> Users mailing list
> Users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>



More information about the Users mailing list