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 に答える