OpenLayers中的矢量投影

时间:2011-12-17 22:19:10

标签: postgresql openlayers geodjango map-projections

我正在使用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")));

1 个答案:

答案 0 :(得分:1)

OpenLayers and Proj4js doc

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

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