Or just use Shapely's standard WKB via the following interface in your
PostGIS import script:

  geometry = ST_GeomFromWKB(bytea WKB, SRID);

Documentation at:

  
http://postgis.refractions.net/documentation/manual-svn/ch04.html#OpenGISWKBWKT


2010/12/13 Adrià Mercader <[email protected]>:
> Thanks Seth, that worked as a charm.
>
> If anybody wants to use these functions without the whole django, you
> only need this two packages:
> django.contrib.gis.geos
> django.contrib.gis.geometry
>
> In the meantime I learnt about PostGIS and its EWKT/EWKB implementations:
> http://postgis.refractions.net/documentation/manual-svn/ch04.html#EWKB_EWKT
>
>
> Adrià,
>
> On 13 December 2010 12:38, geographika <[email protected]> wrote:
>> Hi Adria,
>>
>> There is functionality for this in GeoDjango also based on the GEOS
>> libraries:
>>
>> http://docs.djangoproject.com/en/dev/ref/contrib/gis/geos/#i-o-objects
>>
>>>>>  from  django.contrib.gis.geos  import  Point,  WKBWriter
>>>>>  wkb_w  =  WKBWriter()
>>>>>  pnt  =  Point(1,  1,  srid=4326)
>>>>>  wkb_w.write_hex(pnt)  # By default, no SRID included:
>>
>> '0101000000000000000000F03F000000000000F03F'
>>>>>
>>>>>  wkb_w.srid  =  True  # Tell writer to include SRID
>>>>>  wkb_w.write_hex(pnt)
>>
>> '0101000020E6100000000000000000F03F000000000000F03F'
>>
>> Regards,
>>
>> Seth
>>
>> On 13/12/2010 12:34, Adrià Mercader wrote:
>>>
>>> Hi all,
>>> I know that the issue of adding support for projections in shapely has
>>> came up before, I just wanted to know if you could give some pointer
>>> on this.
>>> I've been using shapely to obtain the WKB representation of a (large)
>>> collection of points, which I later use in a PostGIS import script:
>>>
>>>>>> p = Point(-86.66666666666667,33.0)
>>>>>> p.wkb.encode("hex").upper()
>>>
>>> '0101000000ABAAAAAAAAAA55C00000000000804040'
>>>
>>> My problem is that this representation does not include the bytes
>>> related with the projection of the geometry (WGS84 lat/lon, EPSG
>>> 4326), so when importing the records to PostGIS the
>>> "enforce_srid_the_geom" constraint fails. PostGIS expects a WKB like
>>> this one:
>>> "0101000020E6100000ABAAAAAAAAAA55C00000000000804040"
>>>
>>> Is there a more elegant way to have these missing bytes in the
>>> geometry representation, other than push them manually on the hex
>>> string? I wouldn't mind using some other library.
>>>
>>> Thanks,
>>>
>>>
>>>
>>


-- 
Sean
_______________________________________________
Community mailing list
[email protected]
http://lists.gispython.org/mailman/listinfo/community

Reply via email to