1

緯度、経度を度単位で変換してBBOXwhereを定義する方法を知っている人はいSRS=EPSG:27700ますか?

次のような URL で WMS サービスを呼び出そうとしています (実際のリンクではありません): http://mysecretmappingserver.com/wms?user=myuser&pwd=mypassword&VERSION=1.1.1&REQUEST=GetMap&LAYERS=ap25cm&STYLES=&SRS=EPSG:27700&BBOX= 229096,231675,229296,231875&幅=400&高さ=400

どの言語でもかまいません。C# が望ましい。

Spacedman は私を助けようとしてきましたが、Proj4Net をうまく動作させることはできないようです - 私だけだと思います - しかし誰かが Proj4Net または関連する数学を知っているなら、それはより良いかもしれません...

4

2 に答える 2

1

選択した言語のPROJ.4プロジェクションライブラリへのインターフェイスが必要です。たとえば、Rでは、rgdalパッケージに含まれています。

epsg:4326のいくつかのポイント(1.1〜2.2度)は次のとおりです。

> pts
SpatialPoints:
     coords.x1 coords.x2
[1,]         1         1
[2,]         2         2
Coordinate Reference System (CRS) arguments: +init=epsg:4326 

と出来上がり:

> spTransform(pts,CRS("+init=epsg:27700"))
SpatialPoints:
     coords.x1 coords.x2
[1,]  734005.9  -5416918
[2,]  845270.7  -5305999
Coordinate Reference System (CRS) arguments: +init=epsg:27700

Proj.4のドキュメントはこちら:

http://trac.osgeo.org/proj/

これはOSGBであるため、おそらくより良い例は英国にあります。ロンドン中心部のポイントは次のとおりです。

> pts = SpatialPoints(cbind(-0.109863,51.460852),proj4string=CRS("+init=epsg:4326"))
> spTransform(pts,CRS("+init=epsg:27700"))SpatialPoints:
     coords.x1 coords.x2
[1,]  531407.1  175235.8
Coordinate Reference System (CRS) arguments: +init=epsg:27700
+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000
+y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs
+towgs84=446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894 
于 2010-12-16T18:04:40.883 に答える
0

ogr2ogrとりわけ、プロジェクション間で変換できるをお勧めします。私はそれを私のMacにインストールしていて、例えばPythonや他の多くの言語へのバインディングがあります。コマンドラインでも使用できます。ホームページはhttp://www.gdal.org/ogr2ogr.htmlです。

于 2011-10-31T08:44:44.380 に答える