.NetアプリケーションからSQL Serverの空間タイプを使用するにはどうすればよいですか?


14

次のプロジェクトの要件の1つは、既存のSQL-Server / .Netアプリケーションの一部として基本的な地理データを保存および使用することです。

SQL Spatial型を使用できることは明らかなようですが、SQLクエリの結果から(たとえば)読み取る方法や、更新されたPOI /ポリゴンを保存する方法はないようです。

開発者はストアドプロシージャレベルで実際に変換を処理する必要がありますか、それともネイティブで型を使用する方法はありますか?


あなたはプログラミングについて尋ねているので、これはStackOverflowでよりよく尋ねられるかもしれません。
イアン

2
@Ianこのサイトの範囲は、元々「プログラマーDBA、地図製作者、地理学者、およびGISに専門的に興味がある人向けのQ&Aサイト」(強調鉱山)
ローランドショー

回答:


16

これはデスクトップアプリケーションですか、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互換バージョンの取得は、多くの人々の希望リストの上位にあります!



2

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

お役に立てれば !




1

Feature Data Objects(FDO)ライブラリを使用すると、単一の統一されたインターフェイスセットを介してさまざまな地理空間データ形式(SQL Serverを含む)にアクセスできます。

ライブラリはC ++ですが、ライブラリには.netラッパーも付属しています。

http://fdo.osgeo.org


0

あなたは見ていましたNHibernateはを?空間.NETタイプ(上記のdmbrubacで説明)を使用しますが、SQLサーバー以外の他のDBシステムとも通信できます。

あなたがUIレベルも要求したかどうかはわかりませんが、ここに私の2セントがあります。数年前にSharpMap、GeoAPIを使って休んでいます。彼らは素晴らしいが、ビジネスアプリケーションで使用するのに十分なほど成熟していると言うことができるスタジアムには決して到達しませんでした。私は1年前にESRIのSilverlightとWPF APIを試し、APIを使用する2つのプロトタイプを作成しました。それは素晴らしいです、無料ではありませんが、それは本当に堅実で、最先端であり、あなたがやりたいことすべてをします。


視覚化エンジンがあるので、UIビットは簡単です。
ローランドショー

0

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タイプ」を検索してダウンロードリンクを見つけます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.