次のプロジェクトの要件の1つは、既存のSQL-Server / .Netアプリケーションの一部として基本的な地理データを保存および使用することです。
SQL Spatial型を使用できることは明らかなようですが、SQLクエリの結果から(たとえば)読み取る方法や、更新されたPOI /ポリゴンを保存する方法はないようです。
開発者はストアドプロシージャレベルで実際に変換を処理する必要がありますか、それともネイティブで型を使用する方法はありますか?
次のプロジェクトの要件の1つは、既存のSQL-Server / .Netアプリケーションの一部として基本的な地理データを保存および使用することです。
SQL Spatial型を使用できることは明らかなようですが、SQLクエリの結果から(たとえば)読み取る方法や、更新されたPOI /ポリゴンを保存する方法はないようです。
開発者はストアドプロシージャレベルで実際に変換を処理する必要がありますか、それともネイティブで型を使用する方法はありますか?
回答:
これはデスクトップアプリケーションですか、Silverlightアプリケーションですか?Webベースの場合は、いくつかのフープをジャンプする必要があります。WKTを公開するビューを作成してから、WKTクライアント側をWPF / Silverlightジオメトリに解析できます。
デスクトップアプリケーションの場合は、かなり簡単です。SQL Geometry Viewerのコードプロジェクトには、デスクトップまたはWebの両方に役立つ良い例があります。
SQLGeometryまたはSQLGeographyを直接使用するには、SQL Server Install / 100 / SDK / AssembliesにあるMicrosoft.SqlServer.Types.dllを参照する必要があります。
RIAのようなテクノロジーはこれらのタイプを理解しませんが、回避策があります。基本的に、ジオメトリをvarbinary(max)としてキャストするビューを作成し、ORマッパー、RIA、LINQなどで使用してから、クライアントで変換します。ここに良いチュートリアルがあります
非常に遅い編集:前述のDLLはSilverlightに対してコンパイルされていないため、Silverlightはそれらを受け入れません。Silverlight互換バージョンの取得は、多くの人々の希望リストの上位にあります!
Silverlight ESRI APIを使用して、SQL Server 2008に保存されている空間データを視覚化できます。
SQLサーバーのデータ型を使用できます。nugetまたはここから取得できます:http : //www.microsoft.com/en-us/download/details.aspx? id=16177 (ページの終わり近く)
その後、再びnugetまたはこのリンクから流れるnhibernateを使用できます(10人の担当者がいないように見えるため、ここにリンクを挿入できませんでした...)
その後、sqlタイプをnhibernateのclrタイプにマップするためのカスタムUserTypeが必要になります。あなたにとって幸運なことに、この男は1つを作りました:http : //blogs.ugidotnet.org/mik/archive/2010/03/26/map-sql-server-2008-geography-type-with-fluent-nhibernate.aspx
お役に立てれば !
SharpMapは最適なソリューションです。私は他のすべてを見てきましたが、それは断然最も堅牢です。ただし、2.0ベータ版を使用していることを確認してください。私はそれについてブログに投稿しました(ダウンロードリンクが含まれています)。気軽にチェックしてください。
http://www.jasonkiesel.com/index.php/119/my-go-to-collection-of-net-gis-libraries/
Feature Data Objects(FDO)ライブラリを使用すると、単一の統一されたインターフェイスセットを介してさまざまな地理空間データ形式(SQL Serverを含む)にアクセスできます。
ライブラリはC ++ですが、ライブラリには.netラッパーも付属しています。
あなたは見ていましたNHibernateはを?空間.NETタイプ(上記のdmbrubacで説明)を使用しますが、SQLサーバー以外の他のDBシステムとも通信できます。
あなたがUIレベルも要求したかどうかはわかりませんが、ここに私の2セントがあります。数年前にSharpMap、GeoAPIを使って休んでいます。彼らは素晴らしいが、ビジネスアプリケーションで使用するのに十分なほど成熟していると言うことができるスタジアムには決して到達しませんでした。私は1年前にESRIのSilverlightとWPF APIを試し、APIを使用する2つのプロトタイプを作成しました。それは素晴らしいです、無料ではありませんが、それは本当に堅実で、最先端であり、あなたがやりたいことすべてをします。
Webクライアントを作成している場合、1つのオプションは、現在EsriのMapIt製品にパッケージ化されているArcGIS Spatial Data Serviceを使用することです(http://resources.esri.com/MapItを参照)。このサービスは、RESTful Webサービスを介してSQL Serverテーブルを公開します。WebサービスはArcGIS JSON形式を使用するため、SQL Server空間データを含むテーブルは、ArcGIS Web APIでFeatureLayersとして使用できます。デスクトップクライアントが必要な場合は、WPF APIを使用できます。
デスクトップ開発の代替手段は、SQL Server機能パックに含まれているSQL Server CLRタイプを使用することです。2008 R2機能パックのダウンロードページは、http://www.microsoft.com/downloads/en/details.aspx?displaylang = en&FamilyID = ceb4346f - 657f - 4d28-83f5 - aae0c5c83d52にあります。下にスクロールするか、「CLRタイプ」を検索してダウンロードリンクを見つけます。