2

OSM と Google Base レイヤーと EPSG:4326 オーバーレイを含むマップがあります。現在、他の EPSG のオーバーレイをマップに追加しようとしています。EPSG:2333 のオーバーレイは問題なく表示されました。次に、EPSG:4008 でレイヤーを追加しようとしましたが、何も表示されませんでした。私は openLayers フォーラムに投稿し、proj4js プロジェクトを調査するように言われました (そのことに感謝します!)。私はそれを使ってみましたが、有望に思えますが、私にはうまくいきません:(

body タグにはスクリプトがあります

<script src="./OpenLayers-2.10/OpenLayers.js"></script>
<script src="./proj4js/lib/proj4js-combined.js"></script> //I did also try proj4js.js, but the docs said use this one?

次に、これらをマップとレイヤーの宣言の前に、body タグにも含めます。

Ext.onReady(function() {

            Proj4js.defs["EPSG:4008"] = "+proj=longlat +ellps=clrk66 +no_defs";
            Proj4js.defs["SR-ORG:6627"] = "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs";
            Proj4js.defs["EPSG:4326"] = "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs";

...
...


//Map properties
            var options = {
                    controls: [new OpenLayers.Control.Navigation()], //Needed to use GeoExt controls such as the zoomslider
                    maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
                    units: 'm',
                    allOverlays: false //Do not display all layers on load
            }

            var map = new OpenLayers.Map(options);

var borders = new OpenLayers.Layer.WMS(
                    "Borders", "http://localhost:8080/geoserver/wms", {id: 'borders', layers: 'cite:sedac', transparent: true, projection: new OpenLayers.Projection("EPSG:4008")}, {isBaseLayer: false, displayInLayerSwitcher: true, visibility: true}
               );

また、このレイヤー構成を試しました...この投稿を読んだ後http://getsatisfaction.com/opengeo/topics/reprojecting_in_openlayers

var borders = new OpenLayers.Layer.WMS(
                    "Borders", "http://localhost:8080/geoserver/wms", {id: 'borders', layers: 'cite:sedac', transparent: true, srsName: 'EPSG:4326'}, {isBaseLayer: false, displayInLayerSwitcher: true, visibility: true}
               );

まだ何も表示されません:(。何か間違ったことをしていますか?エラーは表示されません...

さまざまな投影でレイヤーを使用することさえ可能ですか??? マップの投影法を 'EPSG:4008' に変更することはできません。他のレイヤーが壊れてしまうためです。ドキュメントのアドバイスでは、レイヤーの投影法を指定するように指示されていましたが、私のコードが示すように、これを試してみましたが、うまくいきませんでした。

この件について調査していただき、ありがとうございます。

エルシェ

EDIT 私はogr2ogrでシェープファイルを変換しようとしました:

ogr2ogr -s_srs ./SEDAC/tibet.prj -t_srs EPSG:4326 ./SEDAC/new_tibet.shp ./SEDAC/tibet.shp

次のエラーが表示されます。

ERROR 6: No translation for Lambert_Conformal_Conic to PROJ.4 format is known.
Failed to create coordinate transformation between the
following coordinate systems.  This may be because they
are not transformable, or because projection services
(PROJ.4 DLL/.so) could not be loaded.
Source:
PROJCS["Lambert_Conformal_Conic",
    GEOGCS["Unknown datum based upon the Clarke 1866 ellipsoid",
        DATUM["D_Clarke_1866",
            SPHEROID["Clarke_1866",6378206.4,294.9786982139109]],
        PRIMEM["Greenwich",0],
        UNIT["Degree",0.017453292519943295]],
    PROJECTION["Lambert_Conformal_Conic"],
    PARAMETER["standard_parallel_1",25],
    PARAMETER["standard_parallel_2",47],
    PARAMETER["latitude_of_origin",10],
    PARAMETER["central_meridian",110],
    PARAMETER["false_easting",0],
    PARAMETER["false_northing",0],
    UNIT["METERS",1]]
Target:
GEOGCS["WGS 84",
    DATUM["WGS_1984",
        SPHEROID["WGS 84",6378137,298.257223563,
            AUTHORITY["EPSG","7030"]],
        AUTHORITY["EPSG","6326"]],
    PRIMEM["Greenwich",0,
        AUTHORITY["EPSG","8901"]],
    UNIT["degree",0.01745329251994328,
        AUTHORITY["EPSG","9122"]],
    AUTHORITY["EPSG","4326"]]
4

2 に答える 2

0

あなたが何をしようとしているのかよくわかりませんが、OpenLayersはベクターデータを完全に再投影することしかできません。タイルレイヤー(WMSなど)に新しいプロジェクションを適用することはできません。理論的には、コーナーを簡単に再プロジェクションできますが、タイルの形状が歪む可能性があり、OpenLayersにはこれを行う機能がありません。したがって、最終的なアプリケーションで使用するプロジェクションを使用するようにWMSサーバーを設定してから、OpenLayersでベク​​トルオーバーレイを再プロジェクションする必要があります。

于 2010-12-17T02:05:52.393 に答える
0

皆さんに朗報です!

わかった :)

次を使用して、シェープファイルを経度緯度に変更しました。

ogr2ogr -t_srs WGS84 outfile.shp infile.shp

これがシェープファイル データを予想外の方法で変更することに何らかの影響を与えたのではないかと思いますが...元のシェープファイルの Geoserver でのプレビューが、新しい WGS84 シェープファイルにはない角度でずれているように見えます...

ただし、新しい WGS84 シェープファイルの角度は、ベース レイヤーをかなりうまくオーバーレイしているため、より正確に配置されているように見えることを指摘しておきます (いくつかの小さな領域は完全ではありませんが、これはほぼ完璧であるため、シェープファイル自体が原因である可能性があります。 p)

Arnd と Wally には、OpenLayers フォーラムでの継続的な親切で忍耐強い支援と、私が知らなかった多くの優れたツールの使用方法を教えてくれたことに、心からの感謝の意を表したいと思います。(Proj4js、ogr2ogr など)

ハッピーマッピング、

エルシェ

于 2011-01-04T17:47:49.247 に答える