[postgis-users] hexagonal grid

Sufficool, Stanley ssufficool at rov.sbcounty.gov
Fri May 30 10:45:37 PDT 2008


Glad this was helpful. Below is the actual "production" version I used to test the theory. I quickly realized with SRID 2229 (NAD83 Feet) that the 64x128 hexes were much too fine grained, so I multiplied the dimensions by 100. The output looks like a D&D board game ;) , not that I play mind you.

=====================

create table hex_grid (gid serial not null primary key, the_geom geometry not null);

INSERT INTO hex_grid (the_geom)
SELECT translate(the_geom, x_series, y_series)
from 
generate_series(
	(select min(st_xmin(the_geom))::int from geometrytable) - 12800, 
	(select max(st_xmax(the_geom))::int from geometrytable) + 12800, 12800
) as x_series,

generate_series(
	(select min(st_ymin(the_geom))::int from geometrytable) - 12800,
	(select max(st_ymax(the_geom))::int from geometrytable) + 12800, 25600
) as y_series,
(
	SELECT 'POLYGON((0 0,6400 6400,6400 12800,0 19200,-6400 12800,-6400 6400,0 0))'::geometry as the_geom
	UNION SELECT translate('POLYGON((0 0,6400 6400,6400 12800,0 19200,-6400 12800,-6400 6400,0 0))'::geometry, 6400, 12800)  as the_geom
) as one_hex




-----Original Message-----
From: postgis-users-bounces at postgis.refractions.net [mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of Martin Davis
Sent: Friday, May 30, 2008 10:12 AM
To: PostGIS Users Discussion
Subject: Re: [postgis-users] hexagonal grid


This is great!  Added to the wiki at  
http://postgis.refractions.net/support/wiki/index.php?GenerateHexagonalGrid

Sufficool, Stanley wrote:
> Generate a hexagonal grid of 64x128 hexes, then follow the slice/dice 
> from bostongis at step 4.
>
> Substitute the values in generate series with your datasource min/max 
> X/Y extents.
>
> ===============================
>
> create table hex_grid (gid serial not null primary key, the_geom 
> geometry not null);
>
> INSERT INTO hex_grid (the_geom)
> SELECT translate(the_geom, x_series, y_series)
> from generate_series(0 - 128, 10000 + 128, 128) as x_series, 
> generate_series(0 - 128, 10000 + 128, 256) as y_series, (
> 	SELECT 'POLYGON((0 0,64 64,64 128,0 192,-64 128,-64 64,0 0))'::geometry as the_geom
> 	UNION SELECT translate('POLYGON((0 0,64 64,64 128,0 192,-64 128,-64 64,0 0))'::geometry, 64, 128)  as the_geom
> ) as one_hex
>
> ===============================
>
>
> -----Original Message-----
> From: postgis-users-bounces at postgis.refractions.net 
> [mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of Matias Massigoge
> Sent: Thursday, May 29, 2008 12:58 PM
> To: PostGIS Users Discussion
> Subject: Re: [postgis-users] hexagonal grid
>
>
> Thanks Paul!!
>
> On Thu, May 29, 2008 at 4:42 PM, Paul Ramsey 
> <pramsey at cleverelephant.ca> wrote:
>   
>> Try this:
>>
>> http://www.bostongis.com/blog/index.php?/archives/35-Map-Dicing-and-o
>> t
>> her-stuff.html
>>
>> P.
>>
>> On Thu, May 29, 2008 at 12:34 PM, Matias Massigoge
>> <matias.massigoge at agerpro.com.ar> wrote:
>>     
>>> Hi all,
>>>
>>> I'm looking for something similar but squared.
>>> This theme have been covered in the past?
>>> Sorry, I'm newby.
>>> Thanks all.
>>>
>>> Matías
>>>
>>>
>>>
>>> On Thu, May 29, 2008 at 12:42 PM, Brent Wood <pcreso at pcreso.com>
>>> wrote:
>>>       
>>>>> On Thu, May 29, 2008 at 7:08 AM, Randall, Eric
>>>>> <ERandall at eriecountygov.org>
>>>>>           
>>>> wrote:
>>>>         
>>>>>> Has anyone created a method for generating a hexagonal grid over
>>>>>> a polygon
>>>>>>             
>>>>> envelope using postgis? Thought I'd ask before setting out.
>>>>> Thanks.
>>>>>           
>>>> Hi Eric
>>>>
>>>> I haven't specifically done this in PostGIS, but have briefly 
>>>> looked
>>>> into something similar with a colleague who uses R extensively, and 
>>>> was looking at cellular automata modelling over a hexagonal grid. He 
>>>> was using such a dataset in R, & there were a few ways this could be 
>>>> transferred to PostGIS, including the R:gdal package, or a 
>>>> dump/parse/reformat/import script.
>>>>
>>>> Cheers,
>>>>
>>>>   Brent Wood _______________________________________________
>>>> postgis-users mailing list postgis-users at postgis.refractions.net
>>>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>>>
>>>>         
>>> _______________________________________________
>>> postgis-users mailing list postgis-users at postgis.refractions.net
>>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>>
>>>       
>> _______________________________________________
>> postgis-users mailing list postgis-users at postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>
>>     
> _______________________________________________
> postgis-users mailing list postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
> _______________________________________________
> postgis-users mailing list postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>   

-- 
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022

_______________________________________________
postgis-users mailing list postgis-users at postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users



More information about the postgis-users mailing list