2

マップする必要がある EPSG:27700 (OSGB) に大量のデータが保存されているという問題があります。OpenLayers を使用してこれを行うためのマッパーを既に開発しており、ベース レイヤーには英国条例調査の OpenSpace (http://www.ordnancesurvey.co.uk/oswebsite/web-services/os-openspace/api/index. html)。ただし、このベースレイヤーは 27700 で投影されているため、(mapserver とベースレイヤーからの) すべての投影が同じであるため、この時点まで問題はありませんでした。

現在、無料の条例調査で許可されているよりもさらにレイヤーを拡大する必要があります (品質が低下しても)。OpenLayers を使用して、OSM などのタイル ベースのレイヤーをさらにズームできることがわかりました。私が抱えている問題は、OpenLayers に OSM データと投影 EPSG:27700 のレイヤーを表示させようとしていることです。

これは可能ですか?

ありがとう。

4

2 に答える 2

3

OpenLayers は画像レイヤーを再投影できません。これは、OpenLayers が CSS を使用してイメージ レイヤーをオーバーレイするためであり、CSS は、空間変換に必要な複雑な幾何学的操作を実行するにはリッチではありません。

解決策として、WMS サーバーでデータを EPSG:27700 からベース レイヤー プロジェクション (OpenStreetMap を使用する場合は EPSG:900913) に再投影する必要があります。これは、 MapServerまたは GeoServerを使用してその場で行うことができます。

もう 1 つの解決策は、オーバーレイ レイヤーに WFS を使用することです。これにより、OpenLayers はオーバーレイ内の各ベクター フィーチャの位置を再投影できます。WFS 再現例を見てください。

最後に、HTML5 Canvas と JavaScript バージョンの GDAL を使用したラスター変換の実験的なソリューションがあります。

http://dev.openlayers.org/sandbox/camptocamp/canvas/openlayers/examples/raster-reprojection.html

于 2012-08-24T12:07:07.303 に答える
0

OSM データは通常 EPSG:900913 でタイルとして提供されるため、タイルを他の投影法に変換する可能性はありません (試すことはできますが、タインの解像度が小さいため品質が低下します)。できることは、すべての OSM データをダウンロードして、好きな EPSG で独自の tileservice を実行することです。

しかし、まず最初に、openLayers のドキュメントで map オブジェクトのすべてのプロパティを確認してください。マップのズームレベルを設定できます。そうしないと、マップオブジェクトはデフォルトで最初にロードされたレイヤーからズームレベルを取得します.UK OSレイヤーはおそらくズームレベルがほとんどないため、おそらく問題です.

于 2012-08-24T11:49:58.133 に答える