私はGDALライブラリを使用しています。現在、左上の点と右上の点を取り、元の画像から切り抜くことができます。私が今したいことは、2つのWKTポイントを取り、同じことをするためにX、Y座標に変換することです。私はGeoTransformを知っていて、それがどの座標系(WGS84)を使用しているのか知っていれば、これを行うことが可能かどうか疑問に思っていましたか?GeoTiffを使用している場合、GeoTransformを使用して緯度/経度をX、Yに変換することは可能でしょうか?
答えて
画像のアフィン変換を使用して、いくつかのサンプルの緯度/経度を計算しました。私が持っていた唯一の問題は、画像がNorth Facingの場合、geoTransform [2]とgeTransform [4]をLat/Lonを計算するときにゼロにする必要があることでした。
x = (int)Math.Abs(Math.Round((Latitude - geotransform[0])/geotransform[1]));
y = (int)Math.Abs(Math.Round((Longitude - geotransform[3])/geotransform[5]));
あなたはそれをブルートフォースしたい場合は、次のことを行うことができます(私はこれをしなかったし、それが働いていたが、これは単なる擬似コードです):
//Get the Pixel for the length and width, this portion is for the full image
pixelXSize = AbsoluteValue((latitudeAt(Zero)-(latitudeAt(Length)-1))/imageLength);
pixelYSize = AbsoluteValue((longitudeAt(Zero)-(LongitudeAt(Width)-1))/imageWidth);
//Calculate the x,y conversion for the points you want to calculate
x = AbsoluteValue((latitudeToConvert-latitudeAt(Zero))/pixelXSize);
y = AbsoluteValue((longitudeToConvert-longitudteAt(Zero))/pixelYSize);
この回答は1でオフにすることもまたは2つのピクセル。ジオトランスフォームを使用している場合は、North Facing変数が返された回答を混乱させる可能性があります。今のところ、私は北向きの画像でしかこれをテストしていません。
ここで私の質問はノースリーブ以外のイメージを扱う方法でしょう。 – avtoader
私もこれまでに遭遇しましたが、ここでは座標変換を行うのに十分な方法があります。 GDAL documentationから
注GDALDataset :: GetProjectionRef() アフィン地理参照によって暗示地理座標をGDALDataset :: GetGeoTransform()によって返された変換について説明によって返さ
座標系。
これをOGRCoordinateTransformationと一緒に使用すると、私たちのために変換を行うことができます。
基本的に、コードは次のようになります。
// Load up some dataset.
dataset = (GDALDataset *) GDALOpen(mapfile, GA_ReadOnly);
// Define Geographic coordinate system - set it to WGS84.
OGRSpatialReference *poSRS_Geog = new OGRSpatialReference();
poSRS_Geog->importFromEPSG(4326); // WGS84
// Define Projected coordinate system - set to the GeoTransform.
const char *sProj = dataset->GetProjectionRef();
OGRSpatialReference *poSRS_Proj = new OGRSpatialReference(sProj);
// Set up the coordinate transform (geographic-to-projected).
OGRCoordinateTransformation *poCT_Geog2Proj;
poCT_Geog2Proj = OGRCreateCoordinateTransformation(poSRS_Geog, poSRS_Proj);
// Now everything is set up and we set transforming coordinates!
// Pass Lon/Lat coordinates to the Transform function:
double x = lon;
double y = lat;
poCT_Geog2Proj->Transform(1, &x, &y);
// Now x and y variables will contain the X/Y pixel coordinates.
あなたが経度/緯度とピクセル座標の間で変換することができます方法です。 Transform()
で配列を使用し、複数の座標を一緒に変換することができます。最初の引数は変換する座標対の数であり、2番目と3番目の引数はxとyのポインタです。私はちょうどここで一つのペアを変換します。
// Set up the coordinate transform (projected-to-geographic).
OGRCoordinateTransformation *poCT_Proj2Geog;
poCT_Proj2Geog = OGRCreateCoordinateTransformation(poSRS_Proj, poSRS_Geog);
私は、このメソッドを使用します:4326
- 1. d3.jsを使用して緯度と経度を(x、y)座標に変換する方法
- 2. javascriptを使用して北緯と東経に緯度と経度を変換しますか?
- 3. RGSを使用してWGS84を緯度/経度に変換する方法R
- 4. PHP - ライブラリを使用せずに緯度と経度をxとyに変換する
- 5. scrapeを使用してこのhtmlから経度と緯度をこする
- 6. ArrayListから文字列を取得し、使用可能な緯度と経度に変換します
- 7. 2点間の緯度、経度をx、y座標に変換します
- 8. ベースマップを使用して緯度/経度をプロットする
- 9. Rを使用して緯度/経度のデータフレームをポリゴンshapefilに結合する
- 10. javaで北緯と東経に緯度と経度を変換しますか?
- 11. 経度/緯度をデカルト座標に変換しようとしています
- 12. 関数から緯度経度を取得し、私はアドレスから緯度経度を取得するには、このスクリプトを使用していたJavaScript
- 13. ボケマッププロット。緯度/経度をxとyに設定する
- 14. 私は以下のコードを使用している緯度・経度精度
- 15. 経度と緯度をイメージに変換するX、Yピクセルの座標をAlberの投影に合わせる
- 16. freegeoipを使用してシェルから緯度と経度を取得する
- 17. 緯度と経度を使用してタイムゾーンを取得しますか?
- 18. Excelで緯度と経度を使用してグレートサークルトラックを計算する
- 19. GeoTools、Java:DORから緯度と経度座標で使用可能なポリゴンに変換する方法
- 20. 経度と緯度の配列を使用してマップボックスにプロットする
- 21. rubyを使用してexif gpsのデータ配列形式を緯度と経度に変換します
- 22. opencvを使用してカメラの座標を緯度と経度に変換する方法
- 23. fortify、broom :: tidyを使用して間違った緯度/経度
- 24. 緯度と経度を使用してGoogleマップのリンクを作成する
- 25. Android GoogleApiClientを使用してユーザーの緯度と経度を取得する
- 26. プレースオートコンプリートWebService APIを使用して緯度と経度を取得する
- 27. MapKitを使用して緯度と経度の距離を計算する
- 28. UIActivityViewControllerを使用して経度と緯度を共有する方法
- 29. SASベース:経度と緯度を使用して国を取得する
- 30. ルビのジオメトリタイプを緯度x経度に変換する方法
詳細情報でなければならないために緯度/長い間
を:私、それは逆変換を設定することも同様に簡単です
注意GeoTransformを使用してX、YをLat/Lonに変換することができます。 – avtoader