2

我正在使用 OpenLayers 在 geoDjango 中构建一个 GIS 应用程序,并在投影 EPSG:3908 中使用来自 PostGIS 的数据。基础层是 OSM。当我添加矢量数据时,我在巴西而不是波斯尼亚附近渲染了它。我尝试了一切,但无法得到解决方案。

请问有人可以帮忙吗?

var map, osm, google, kml;
function init(){

        map = new OpenLayers.Map('map');

        map.addControl(new OpenLayers.Control.LayerSwitcher());

        var osm = new OpenLayers.Layer.OSM(
            "OSM");

        kml = new OpenLayers.Layer.GML("KML", upit, 
           {format: OpenLayers.Format.KML,
            projection: new OpenLayers.Projection("EPSG:3908")});

        map.addLayers([osm, kml]);

        map.zoomToExtent(
           new OpenLayers.Bounds(15.774414, 42.6, 19.662109, 45.2).transform(new OpenLayers.Projection("EPSG:4326"),new OpenLayers.Projection("EPSG:900913")));
4

1 回答 1

1

OpenLayers 和 Proj4js 文档

进行转换时,必须isReady在调用之前检查参数transform。这是因为您必须确保已加载投影的定义。

因此,定义您的转换对象(4326 和 900913)并检查它们是否准备就绪,然后执行转换。如果它们无法准备好,请在您的 html 文件中明确引用相应的 Proj4js 定义文件。

于 2011-12-20T10:24:17.970 回答