Imforgot to saym this. The problem I have to solve is that I need to be able to 
export also to other projections. For our indoor navigation and accurate site 
maps we have to use a proper projection. Thus my idea to index WGS84 datum, and 
enble to index oberlappings efficiently. When this is solved it should be 
possible to load WGS84 data cells that overlap a world area for a given 
projection (using the bbox from input, loading overlapping MODIS cells) and cut 
the export at the bounding sites later on.

Ben

Von meinem iPad gesendet

> Am 06.01.2016 um 13:41 schrieb Andrew Byrd <[email protected]>:
> 
> 
>> On 06 Jan 2016, at 13:13, Andrew Byrd <[email protected]> wrote:
>> Obviously in the long term we’ll want to improve the index to handle these 
>> cases. Both of these limitations should be straightforward to overcome. To 
>> index large polygons as areas and you’d either need some kind of multi-level 
>> index (rectangle tree or “pyramids") or just accept rasterizing area 
>> polygons into all the index cells they overlap (a polygon’s ID appearing 
>> repeatedly, in every tile it overlaps).
> 
> I should elaborate: 
> 
> Using a predefined grid is practical because you don’t need to store the 
> bounds of the index nodes (they’re regular tiles, so their bounding boxes are 
> implicit in the grid definition). You can determine which index cell any 
> element is in by just chopping low-order bits off its projected coordinates 
> to match the index’s constant zoom level.
> 
> If you’re rendering map tiles, there’s also the advantage of a 1:1 
> correspondance between one spatial index node and one output map tile at or 
> above the index’s zoom level, and a simple one-to-many relationship below 
> that zoom level. This is also practical for exporting rectangular PBF regions.
> 
> If you want to index objects physically larger than a tile in the index or 
> reflect the fact that objects span tiles, you could repeat the identifier of 
> that object in every tile it touches (what I referred to as rasterizing the 
> geometry), but this approach leads to a lot of repetition of identifiers and 
> de-duplication of identifiers when you query the index.
> 
> An alternative approach is a hierarchical index, where each index node is 
> entirely physically contained within a higher-level node. Conveniently the 
> web Mercator map tile system defines a perfectly aligned hierarchy of squares 
> via its zoom levels: it is a quad tree 
> (https://en.wikipedia.org/wiki/Quadtree). You simply index each object at the 
> highest zoom level that still contains the object entirely within one tile, 
> and when you do a query operation from the index, you can easily traverse up 
> the zoom levels without maintaining pointers between them (you can find the 
> coordinates of the next higher tile by just chopping off low order bits).
> 
> There are of course many ways to implement spatial indexes, but considering 
> that we’re working with data that often gets rendered or exported in 
> tile-sized chunks, this approach seemed well-suited to me.
> 
> I’d of course welcome any insight or suggestions that might improve our 
> implementation.
> 
> -Andrew

_______________________________________________
dev mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/dev

Reply via email to