[OpenLayers-Users] Aspect Ratio/Projection Problem

Paul Spencer pagameba at gmail.com
Fri Jun 6 08:09:45 EDT 2008


Michael,

I tried your code, you have omitted a critical piece which is the  
options object you are passing to the map constructor - please send so  
I can see what is going on.

Cheers

Paul

On 6-Jun-08, at 3:33 AM, Michael Langford wrote:

> I tried Paul's suggestion and it didn't change anything.
>
> I'll try to clarify and add code.
>
> If you take OpenLayers out of the picture entirely, and you use GMaps
> instead to do what we're trying to do, you'd use a GGroundOverlay on
> google maps to plop say a custom map of New York City down on top
> (completely obscuring their map). When you do this, the google does
> not in any way stretch, modify, reproject, etc, the images we are
> using. It might with other images, but ours come out the same as they
> go in, probably indicating we have the same projection as Google Maps,
> or at least close enough these areas overlay correctly. Here is an
> example of using GGroundOverlay:
> http://www.usnaviguide.com/ws-2008-02/ggroundoverlay_example.htm
> Notice his picture *IS* reprojected to fit on the google map (ours is
> not).
>
> If we port our GGroundOverlay example from GMaps to open layers, we
> throw down our custom map of say New York, then OpenLayers decides (at
> least in the default setup), that it would like to stretch our custom
> map overlay. Sure, it reports the correct lats and longs after doing
> so, but it looks horrible, as there is lots of lettering and symbols
> on the map which are stretched to near illegibility. We want to mimic
> the projection that the screen map is in on Google Maps so as to avoid
> any distortion.
>
> When we use an OpenLayer.Layer.Image on top of the default map that
> you get when you go new OpenLayers.Map("map"), the picture is
> distorted as OpenLayers reprojects the image or something like that,
> elongating it in the east west direction.
>
> How can I use an image layer in OpenLayers to achieve the same
> appearance as a GGroundOverlay in google maps, with no squishing and
> stretching of the image overlay?
>
> As a further modification, we're actually just using the image as the
> base map. We're not using a google map, WMS server or anything like
> that, nor are we tiling our image. We're justing using the single
> image that we were overlaying now as the "base layer" of the map.
> We're just interested in the controls, markers, and nice map
> pixel->coordinate translations, as well as your wonderful vector
> drawing api.
>
> Remember when I say terms like "base layer" etc, I probably don't have
> the same OpenLayers concepts you do, and I just mean its the map on
> the bottom, we're not putting any pictures under it. Sorry if I used
> terms different than they are in the Open Layers community.
>
>          --Michael
>
> Here is the code that initializes the map:
> 	var mapbounds = new OpenLayers.Bounds(-74.766667,
> 			39.166666667,
> 			-71.88333,
> 			40.88333);
>
>      g_map = new OpenLayers.Map('map', options);
>
> 	var graphic = new OpenLayers.Layer.Image(
> 			'Overlay of Temperature Data',
> 			'http://www.rowdylabs.com/gmaps/oceantemp/area-ne06.gif',
> 			mapbounds,
> 			new OpenLayers.Size(1030,796),
> 			{maxExtext:mapbounds});
>
> 	g_map.addLayers([graphic]);
> 	g_map.setCenter(new OpenLayers.LonLat(-73,40), -1);
>
> 	g_markers = new OpenLayers.Layer.Markers( "Markers" );
> 	g_map.addLayer(g_markers);
>
>
> On Fri, Jun 6, 2008 at 2:22 AM, Eric Lemoine <eric.c2c at gmail.com>  
> wrote:
>> On Fri, Jun 6, 2008 at 12:43 AM, Michael Langford
>> <michael.langford at rowdylabs.com> wrote:
>>> After switching to openlayers.org from google maps, we're almost  
>>> ready
>>> to launch my customer's new site.
>>>
>>> One problem though: His overlay image is "squished" on OpenLayers,
>>> where it looks great using the image overlay of Google Maps API. It
>>> involves way too many hours of hand lettered text on it to  
>>> contemplate
>>> redoing in the new aspect ratio, so I need to find a technical
>>> solution to make OpenLayers.org display it properly.
>>>
>>> I've been fiddling with projections, and have not seen a way out of
>>> this forest, as nothing appears to change the display of the image.
>>>
>>> When I look, I keep finding pointers on the web to the extremely  
>>> brief
>>> comment about projections on the FAQ, which doesn't help me at all.
>>>
>>> It seems like I'd like to display in EPSG:900313 as that is what
>>> Google uses (that may not be the exact name, I deleted it after it
>>> seemed clear it wasn't working).
>>>
>>> I'm not exactly sure the role the proj4js plays in this, but it  
>>> seems
>>> like it probably does.
>>>
>>> I've attached the picture of what the overlay looks like when  
>>> applied
>>> to google's map, and what the overlay looks like when applied to  
>>> open
>>> layers. In addition, it is available at
>>> http://rowdylabs.com/ng/RightAndWrong.GIF in case the mailing list
>>> doesn't like attachments.
>>>
>>> Hopefully someone can provide something like the following:
>>>
>>>  You properly include proj4js at the top of your html file like so,
>>> and you create your map with arguments like so.
>>
>> Hello
>>
>> I'm not sure I understand your problem. But if what you want is have
>> overlays over google maps you'll need to use SphericalMercator. See
>> some doc here <http://trac.openlayers.org/wiki/SphericalMercator> and
>> some example there
>> <http://www.openlayers.org/dev/examples/spherical-mercator.html>.  
>> Hope
>> this will help you do what you want.
>>
>> Cheers,
>>
>> --
>> Eric
>>
>
>
>
> -- 
> Michael Langford
> Phone: 404-386-0495
> Web: http://www.RowdyLabs.com
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users




More information about the Users mailing list