NetTopologySuite.Core 1.15.3と距離単位 -- c# フィールド と nettopologysuite フィールド 関連 問題

NetTopologySuite.Core 1.15.3 and distance units












0
vote

問題

日本語

距離のデカルト座標をメートルに変換したい。

私は

を加えました

次のコードを使用しようとします。

<事前> <コード> return new PagedList<Dto.DrugConsortium.CollectionSiteWithCoordinatesDto>(query.Select(p => new Dto.DrugConsortium.CollectionSiteWithCoordinatesDto { CollectionSite = p, Distance = p.Location.ProjectTo(2855).Distance(myLocation) }).ToList(), pageIndex, pageSize);

私の延長はどこですか:

<事前> <コード> public static class GeometryExtensions { static readonly IGeometryServices _geometryServices = NtsGeometryServices.Instance; static readonly ICoordinateSystemServices _coordinateSystemServices = new CoordinateSystemServices( new CoordinateSystemFactory(), new CoordinateTransformationFactory(), new Dictionary<int, string> { // Coordinate systems: // (3857 and 4326 included automatically) // This coordinate system covers the area of our data. // Different data requires a different coordinate system. [2855] = @" PROJCS[""NAD83(HARN) / Washington North"", GEOGCS[""NAD83(HARN)"", DATUM[""NAD83_High_Accuracy_Regional_Network"", SPHEROID[""GRS 1980"",6378137,298.257222101, AUTHORITY[""EPSG"",""7019""]], AUTHORITY[""EPSG"",""6152""]], PRIMEM[""Greenwich"",0, AUTHORITY[""EPSG"",""8901""]], UNIT[""degree"",0.01745329251994328, AUTHORITY[""EPSG"",""9122""]], AUTHORITY[""EPSG"",""4152""]], PROJECTION[""Lambert_Conformal_Conic_2SP""], PARAMETER[""standard_parallel_1"",48.73333333333333], PARAMETER[""standard_parallel_2"",47.5], PARAMETER[""latitude_of_origin"",47], PARAMETER[""central_meridian"",-120.8333333333333], PARAMETER[""false_easting"",500000], PARAMETER[""false_northing"",0], UNIT[""metre"",1, AUTHORITY[""EPSG"",""9001""]], AUTHORITY[""EPSG"",""2855""]] " }); public static IGeometry ProjectTo(this IGeometry geometry, int srid) { var geometryFactory = _geometryServices.CreateGeometryFactory(srid); var transformation = _coordinateSystemServices.CreateTransformation(geometry.SRID, srid); return GeometryTransform.TransformGeometry( geometryFactory, geometry, transformation.MathTransform); } }

<コード> ProjNet4GeoAPI NUGETパッケージ(V 1.4.1)

しかし私は GeometryTransform クラスを解決できません。

解決方法?

英語

I want to "convert" cartesian coordinates of distance to meters.

I added

I try to use the following code:

        return new PagedList<Dto.DrugConsortium.CollectionSiteWithCoordinatesDto>(query.Select(p =>             new Dto.DrugConsortium.CollectionSiteWithCoordinatesDto { CollectionSite = p, Distance = p.Location.ProjectTo(2855).Distance(myLocation) }).ToList(), pageIndex, pageSize); 

where is my extension:

public static class GeometryExtensions {     static readonly IGeometryServices _geometryServices = NtsGeometryServices.Instance;     static readonly ICoordinateSystemServices _coordinateSystemServices         = new CoordinateSystemServices(             new CoordinateSystemFactory(),             new CoordinateTransformationFactory(),             new Dictionary<int, string>             {             // Coordinate systems:              // (3857 and 4326 included automatically)              // This coordinate system covers the area of our data.             // Different data requires a different coordinate system.             [2855] =                 @"                 PROJCS[""NAD83(HARN) / Washington North"",                     GEOGCS[""NAD83(HARN)"",                         DATUM[""NAD83_High_Accuracy_Regional_Network"",                             SPHEROID[""GRS 1980"",6378137,298.257222101,                                 AUTHORITY[""EPSG"",""7019""]],                             AUTHORITY[""EPSG"",""6152""]],                         PRIMEM[""Greenwich"",0,                             AUTHORITY[""EPSG"",""8901""]],                         UNIT[""degree"",0.01745329251994328,                             AUTHORITY[""EPSG"",""9122""]],                         AUTHORITY[""EPSG"",""4152""]],                     PROJECTION[""Lambert_Conformal_Conic_2SP""],                     PARAMETER[""standard_parallel_1"",48.73333333333333],                     PARAMETER[""standard_parallel_2"",47.5],                     PARAMETER[""latitude_of_origin"",47],                     PARAMETER[""central_meridian"",-120.8333333333333],                     PARAMETER[""false_easting"",500000],                     PARAMETER[""false_northing"",0],                     UNIT[""metre"",1,                         AUTHORITY[""EPSG"",""9001""]],                     AUTHORITY[""EPSG"",""2855""]]             "             });      public static IGeometry ProjectTo(this IGeometry geometry, int srid)     {         var geometryFactory = _geometryServices.CreateGeometryFactory(srid);         var transformation = _coordinateSystemServices.CreateTransformation(geometry.SRID, srid);          return GeometryTransform.TransformGeometry(             geometryFactory,             geometry,             transformation.MathTransform);     } } 

ProjNet4GeoAPI nuget package is added (v 1.4.1)

But I can't resolve GeometryTransform class, it's not found.

How to resolve it?

</div
     

回答リスト

0
 
vote

最初の geometrytransform.transformgeometry()は、NetTopoLogySuite.CoordinateSystems.Transformationsネームスペースの下にあるメソッドです。

がありますか

"NetTopologySuite.CoordinateSystems.Transformations."

あなたの拡張方法の上部に?

2番目の私は2855が北西ワシントン州の座標系であると思います。私はあなたが使用しているあなたの座標がその領域内にあるかどうかを確認します。

また、各座標系には独自の測定単位があります。たとえば、SRID:4326は、ジオメトリ(デカルト座標)と地理的タイプ用のメーターのための度数です。

SRID:2855は足

利用可能な座標系のリストを取得するには、このサイトをチェックすることができます。 https://epsg.io/

地理的なタイプと変身に新しいが、私の検索では、私が見つけたものです。

 

First GeometryTransform.TransformGeometry() is a method that is under NetTopologySuite.CoordinateSystems.Transformations namespace. Do you have

"using NetTopologySuite.CoordinateSystems.Transformations;"

at the top of your extension method?

Second I would add that 2855 is a coordinate system for NorthWest Washington state. I would check to see if your coordinates that you are using are within that area.

Also, each coordinate system has its own units of measurement. For example, SRID:4326 is in degrees for geometry(Cartesian coordinates) and meters for geography types.

SRID:2855 is in feet

You can check out this site to get a list of the coordinate systems available. https://epsg.io/

I am new to geography types and transforms but in my search this is what I found.

</div
 
 

関連する質問

0  NetTopologySuiteでポイント(LAT、LON)の間の距離を計算する  ( Calculate distance between to pointslat lon with nettopologysuite ) 
この記事に従った https://docs.microsoft.com / en-us / ef /コア/モデリング/ Spatial が機能していません。 <事前> <コード> var seattle = new Point(-122.333056, 47....

0  NetTopologySuiteを使用してGeojsonのBboxフィールドを削除します  ( Remove bbox field of geojson using nettopologysuite ) 
.NET CORE 3 WebAPIプロジェクトでは、NetTopologySuiteを使用してFeatureCollectionを作成しています。 その後、Geojsonの応答にシリアル化します。以下のフルコード: <事前> <コード> using Sys...

1  NetTopologySuiteを使用してジオメトリを保存するときのEntity Framework Core IndexOutOfRangeException  ( Entity framework core indexoutofrangeexception when saving geometry using nettop ) 
DbUpdateException を、シェープファイルからロードされたいくつかのジオメトリを呼び出して DbUpdateException を取得しています。私が得るエラーは次のとおりです。 IndexOutOfRangeException:インデッ...

1  Dapperを使用して地理的な引数を指定してPostgreSQL関数を呼び出すときにNotSupPortedExceptionを取得しました  ( Got notsupportedexception when using dapper to call a postgresql function with a ) 
Dapperを使用していました(<コード> npgsql Pluginを使用して 99887768 Pluginを使用して) geography 引数を使用してPostgreSQL関数を呼び出します。コード> SELECT DISTINCT ...

0  GML3サポートネットトポロジスイートのサポート?  ( Gml3 support in net topology suite ) 
GML3ジオメトリがNTSジオメトリ(1.3または2.0 TBD)に読み取られ、翻訳されるプロジェクトがあります。 NTSでGML3サポートを認識している人は誰ですか? イニシアチブはそれに取り組んでいますか? a> JTS用) ...

0  NET TOPOLOGYSUITEポリゴン拡大  ( Net topologysuite polygon enlargement ) 
多角形などの幾何学的形状で行うためにさまざまなタスクを解決するために.NET TopologySuiteを使用しています。 しかし、私たちは多角形を考えると、.NET Topologysuiteライブラリーを使用して1 km / 100メートルなどの量で同じポ...

3  NetTopologySuite TransformGoometryを使用するとエラーが発生しました  ( Error when using nettopologysuite transformgeometry ) 
私は英国の北部/イースジーズ座標系(Britishnationalgridosgb36)を緯度/経度(WGS1984)にしているシェイプファイルで読みやろうとしています。私は優れた記事を見つけました NetTopologySuiteを使ってこれを行う方法につ...

9  Entity Framework Core 3.1 NetTopologySuite.geoMetries.point:SQLException:指定された値はデータ型の有効なインスタンスではありません。  ( Entity framework core 3 1 with nettopologysuite geometries point sqlexception ) 
私はこのようなモデルを持っています: <事前> <コード> public class Facility { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] publ...

0  NetTopologySuite.Core 1.15.3と距離単位  ( Nettopologysuite core 1 15 3 and distance units ) 
距離のデカルト座標をメートルに変換したい。 私はを加えました 次のコードを使用しようとします。 <事前> <コード> return new PagedList<Dto.DrugConsortium.CollectionSiteWithCoord...

2  ネットトポロジースイートでエンティティフレームワークコアでポイントをバッファーする方法(地理)  ( How to buffer a point geography by 1 meter in entity framework core with net t ) 
ここで推奨される、そしてそれの周りに円の多角形を作成するためのポイントを緩衝するための非常に苦労しています。 ng-repeat2 に<コード> ng-repeat3 に渡すと、1メートルが1メートルを意味するという信念の下にありますが、120マイル近くの...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有