OpenLayers中的矢量投影

问题描述:

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

请任何人都可以帮忙吗?

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"))); 

OpenLayers and Proj4js doc

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

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