Openlayers.Bounds().transform()未执行转换

Openlayers.Bounds().transform()未执行转换,openlayers,proj4js,Openlayers,Proj4js,解决了。看 我正在尝试对Openlayers中的边界进行坐标变换,并尝试了以下操作,对于这两个console.log语句,这两种情况下的边界都相同,但我希望第二个语句在EPGS中为我提供边界:4326: 在这两个console.log语句中,我从Chrome javascript调试器获得以下对象c&p: Class bottom: 4816289.746171 centerLonLat: null left: 189775.37995 right: 761662.354535 top: 547

解决了。看

我正在尝试对Openlayers中的边界进行坐标变换,并尝试了以下操作,对于这两个console.log语句,这两种情况下的边界都相同,但我希望第二个语句在EPGS中为我提供边界:4326:

在这两个console.log语句中,我从Chrome javascript调试器获得以下对象c&p:

Class
bottom: 4816289.746171
centerLonLat: null
left: 189775.37995
right: 761662.354535
top: 5472414.143295
__proto__: Object
我在trac.osgeo.org/openlayers/wiki/documentation/Dev/proj4js上阅读了关于带有openlayers的proj4js的文档,它告诉我:

如果库可用,OpenLayers将与Proj4js集成。这将使使用它更容易一些。将它与OpenLayers.js放在同一个文件夹中将使其可用

我通过符号链接做到了:

matt@xxxxxxxx:/var/www/xxxxx$ ll /var/www/OpenLayers-2.10/
total 1008
drwxr-xr-x 13 matt matt   4096 Nov  1 01:49 .
drwxrwxrwx 30 root root   4096 Nov  1 01:43 ..
-rw-r--r--  1 matt matt 945828 Sep  9  2010 OpenLayers.js
...
lrwxrwxrwx  1 matt matt     31 Nov  1 01:49 proj4js.js -> /var/www/proj4js/lib/proj4js.js
...
有人能帮我诊断一下我做错了什么吗

谢谢,
Matt

主要问题是您的页面根本没有加载proj4js.js。您可能假设OpenLayers将自动加载它,但它不会,所以您需要自己加载它

由于OpenLayers没有内置的EPSG:26915支持,因此需要proj4js来完成您想要的转换

第二个问题是,您希望通过在javascript中添加一行代码来显式定义EPSG:26915,如下所示:

Proj4js.defs["EPSG:26915"] = "+proj=utm +zone=15 +ellps=GRS80 +datum=NAD83 +units=m +no_defs";

如果没有这一点,我认为proj4js应该尝试从spatialreference.org加载定义,但在我尝试时,这似乎对我不起作用。

感谢您的帮助,TomH,您是对的,我从文档中假设,将其放置在Openlayers目录中意味着Openlayers将自动加载它。我现在已经将它改为指向proj4js.js,在它自己的解压目录中,因为它需要整个脚本目录,我认为它是自包含的。我做了您建议的更改,但在转换后得到相同的未转换对象的结果是相同的。代码如下:我能说的就是它对我有效——请参阅我的测试页面,了解我的意思。这是使用OpenLayers 2.11,但我认为这不会有任何区别。