Have you tried using the full PROJ4s string for EPSG:27700 rather than using
+init?
e.g. follow the "Proj4js" link at:
http://spatialreference.org/ref/epsg/27700/
I'm wondering whether your installation knows the settings for 27700.
Certainly I've had a similar problem with WebMercator.

Certainly you definitely want to use metres rather than km or degrees when
specifying the bounding box.

Your 20km difference is probably because your installation is not
recognising +init=EPSG:27700, defaulting to WGS84 (which uses a different
world-shape than OSGB36 used for the BNG) and then drawing a map containing
a few metres of ocean around 0deg N, 0deg E. 

The Ireland/Norwich problems suggest something more complicated is going
wrong too, but try this and see what happens.

Ollie

-----Original Message-----
Date: Wed, 22 Apr 2009 10:19:05 +0100
From: Kev js1982 <[email protected]>
Subject: [Talk-GB] Generating Mapnik Images to epsg:27700 (British
        National        Grid) Projection
To: [email protected]
Message-ID:
        <[email protected]>
Content-Type: text/plain; charset="iso-8859-1"

Sorry if this is the wrong place to ask this (I can't find a better one).

I am trying to generate some tiles to generate a set of tiles to cover the
British Isles in the OSGB Projection (epsg:27700)

The files I have use an quite possibly unique naming schema (we are
intending to use them as a drop in replacement for some OS supplied tiles
when the licence expires, extending coverage to Northern Ireland* in the
process) - an example of which is
map-n440000-e360000-s420000-w340000-px250.png the numbers are the meters
north/east of the OSGB origin (centered on western edge of the city of
Preston in this example)  so it should be relatively easy to generate the
tiles - but I am coming unstuck at generating the images.

Modifying generate_image.py and using (chopped a bit for brevity - full code
at http://kjs.me.uk/wiki/Talk:Mapnik , the main Mapnik page contains my
installation notes)

prj = Projection("+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0
+x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgri...@null +no_defs +over")
ll = (-6.5, 49.5, 2.1, 59)
c0 = prj.forward(Coord(ll[0],ll[1]))
c1 = prj.forward(Coord(ll[2],ll[3]))
bbox = Envelope(c0.x,c0.y,c1.x,c1.y)
m.zoom_to_box(bbox)

gives me a map of the British Isles which generates okay :)


Changing the projection line to

prj = Projection('+init=epsg:27700')

gives me a map centered some 500km or so south of Ghana on the equator

Thinking I need to use Geocodes (aka Eastings and Northings) changing the ll
line to

ll = (0,0,500000,500000)

This gives me a box of ocean, as does using km instead of meters

ll = (0,0,500.000,500.000)

Various combinations of changing the bbox and ll result in getting either
Ghana or ocean - I guess i'm doing somet slightly wrong somewhere along the
way.

Taking the Eastings/Northings and converting to Latitude/Longitude means
they don't quite match (Holyhead ends up around 20km north of it's original
location for example) and the tiles don't join properly - this (as you would
expect) results in noticable "tearing" of the map, particulally on the west
coast of Ireland (for example Limerick is shown twice) and results in the
town of Norwich disappearing on the east coast of England.

Does anyone know/have a working example of how to generate a single tile
using generate_image.py (or based on) based on the geocodes that bound the
tile?

* Yes I know the Island is on a different grid but all our points use Great
Britain geocodes, which means negative eastings.

Thanks

Kev :o)
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://lists.openstreetmap.org/pipermail/talk-gb/attachments/20090422/89535c
ce/attachment-0001.htm 

------------------------------

_______________________________________________
Talk-GB mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-gb


End of Talk-GB Digest, Vol 31, Issue 13
***************************************


_______________________________________________
Talk-GB mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-gb

Reply via email to