2011-12-17 120 views
2

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

回答

1

OpenLayers and Proj4js doc

在做轉換,你必須在調用transform之前檢查isReady參數。這是因爲您必須確保投影的定義已加載。

因此,定義您的轉換對象(4326和900913)並檢查它們是否準備就緒,然後執行轉換。如果他們未能做好準備,請在html文件中明確引用相應的Proj4js定義文件。