[OpenLayers-Users] transform help please
Mike Adair
madair at dmsolutions.ca
Thu Nov 19 14:59:48 EST 2009
If that fixed it then all you should need is like this:
<script src="./proj4js/lib/proj4js-compressed.js"></script>
<script src="./proj4js/lib/defs/EPSG2913.js"></script>
merc.js and lcc.js are included in the proj4js-compressed.js version and not in proj4js.js
Mike
Dash wrote:
> Thanks for the quick response Richard, but I don't see how I'm re-projecting
> raster layers when I'm explicitly specifying coordinates to transform? I'm
> only using the transformation on coordinates, not the base layers (Google).
>
> Ahhh, I just figured it out. Here is what I had to do in-order to transform
> coordinates from EPSG:2913 (Stateplane) to EPSG:900913. Within the head tag
> I added 2 projCodes (lcc.js and merc.js).
>
> <script src="./proj4js/lib/proj4js.js"></script>
> <script src="./proj4js/lib/proj4js-compressed.js"></script>
> <script src="./proj4js/lib/defs/EPSG2913.js"></script>
> <script src="./proj4js/lib/projCode/lcc.js"></script>
> <script src="./proj4js/lib/projCode/merc.js"></script>
>
> Also, here is my transformation:
>
> var srcProj = new OpenLayers.Projection("EPSG:2913");
> var destProj = new OpenLayers.Projection("EPSG:900913");
> var point = new OpenLayers.LonLat(7662464.286, 614886.646);
> point.transform(srcProj, map.getProjectionObject());
>
> My input coordinates were: 7662464.286, 614886.646
> Transformed coordinates: -13647631.260266263, 5674262.881180859
>
> Works great, at least for now.
>
>
> Richard Marsden wrote:
>
>> It looks like you are trying to re-project Google raster layers?
>>
>> I thought OpenLayers was only capable of re-projecting vector layers?
>>
>> For example, the following article uses OpenLayers (& Proj4JS) to
>> re-project
>> KML and GeoRSS data (geographic coords, WGS84) to a number of different
>> projections (Mollweide, Behrmann, etc):
>>
>> http://www.geowebguru.com/articles/209-how-to-create-an-online-map-with-a-non-mercator-projection-part-2
>>
>>
>> Richard Marsden
>> Winwaed Software Technology LLC
>> http://www.winwaed.com
>> http://www.mapping-tools.com
>> http://www.geowebguruc.om
>>
>>
>> On Thu, Nov 19, 2009 at 12:12 PM, Dash <jimlug at co.clackamas.or.us> wrote:
>>
>>
>>> Aloha Thursday folks,
>>>
>>> I am banging my head against the problem for the last several hours. I
>>> have
>>> went through numerous examples and utilized OpenLayers tutorial on
>>> reprojecting points without any success. I've even used the Proj4js Wiki
>>> without any help. Could some please shed some light on what I am doing
>>> wrong?
>>>
>>> Here is the scenario. I am trying to transform some coordinates from
>>> EPSG:2913 to EPSG:900913. I've also tried a simplified version using
>>> EPSG:4326 -> EPSG:900913. Anyway, the transform is not happening for
>>> some
>>> odd reason. I do have the proj4js library within my code and I have
>>> added
>>> EPSG definition to my /proj4js/lib/def directory. I am checking if the
>>> projection by using the getUnits function of the projection class within
>>> OpenLayers. If the units come back null, then the proj4js library is
>>> unavailable. Why is this? I'm so confused. This should be rather
>>> straight
>>> forward. Anyway, here is some of my code. Hopefully someone can help me
>>> out. Thanks.
>>>
>>> <head>
>>> <script src="http://openlayers.org/dev/lib/OpenLayers.js"
>>> type="text/javascript"></script>
>>> <script src="./proj4js/lib/proj4js.js"></script>
>>> <script src="proj4js/lib/defs/EPSG2913.js"></script>
>>> <script src="proj4js/lib/defs/EPSG900913.js"></script>
>>> <script src="proj4js/lib/defs/EPSG4326.js"></script>
>>> </head>
>>>
>>> <script type="text/javascript">
>>> var map;
>>> function init(){
>>> var options = {
>>> //projection: new OpenLayers.Projection("EPSG:900913"),
>>> // Map projection
>>> projection: "EPSG:900913",
>>> displayProjection: new OpenLayers.Projection("EPSG:4326"),
>>> // Display
>>> projection
>>> units: "m",
>>> numZoomLevels: 5,
>>> maxResolution: 156543.0339,
>>> maxExtent: new OpenLayers.Bounds(-13698618.8209569,
>>> 5595988.4768255,
>>> -13521569.8682338, 5701506.49106001)
>>> };
>>>
>>> // Initiate Map Controls
>>> map.addControl(new OpenLayers.Control.LayerSwitcher());
>>> map.addControl(new OpenLayers.Control.MousePosition());
>>>
>>> // Create Google Mercator Layers
>>> var gmap = new OpenLayers.Layer.Google("Google
>>> Streets",{'sphericalMercator': true, numZoomLevels: 20});
>>> var gphy = new OpenLayers.Layer.Google("Google Physical",
>>> {'sphericalMercator': true, type: G_PHYSICAL_MAP, numZoomLevels: 20});
>>> var gsat = new OpenLayers.Layer.Google("Google
>>> Satellite",{'sphericalMercator': true, type: G_SATELLITE_MAP,
>>> numZoomLevels:
>>> 20});
>>> var ghyb = new OpenLayers.Layer.Google("Google
>>> Hybrid",{'sphericalMercator': true, type: G_HYBRID_MAP, numZoomLevels:
>>> 20});
>>>
>>> map.addLayers([gmap, gphy, gsat, ghyb]);
>>>
>>> var srcProj = new OpenLayers.Projection("EPSG:4326");
>>> alert(srcProj.getUnits());
>>> var point = new OpenLayers.LonLat(-71, 42);
>>> point.transform(srcProj, map.getProjectionObject());
>>>
>>> if(point.transformed)
>>> {
>>> alert("point already transformed");
>>> }
>>>
>>> Proj4js.transform(srcProj, map.getProjectionObject(), point);
>>>
>>> Any suggestions would be greatly appreciated. THANKS...
>>> --
>>> View this message in context:
>>> http://n2.nabble.com/transform-help-please-tp4033462p4033462.html
>>> Sent from the OpenLayers Users mailing list archive at Nabble.com.
>>> _______________________________________________
>>> Users mailing list
>>> Users at openlayers.org
>>> http://openlayers.org/mailman/listinfo/users
>>>
>>>
>> _______________________________________________
>> Users mailing list
>> Users at openlayers.org
>> http://openlayers.org/mailman/listinfo/users
>>
>>
>>
>
>
--
Michael Adair
Senior Software Architect
DM Solutions Group Inc.
Office: (613) 565-5056 x26
madair at dmsolutions.ca
http://www.dmsolutions.ca
http://research.dmsolutions.ca
More information about the Users
mailing list