.Net 애플리케이션에서 SQL Server의 공간 유형을 사용하려면 어떻게해야합니까?


14

다가오는 프로젝트의 요구 사항 중 하나는 기존 SQL-Server / .Net 응용 프로그램의 일부로 기본 지리 데이터를 저장하고 사용하는 것입니다.

SQL Spatial 유형을 사용할 수는 있지만, SQL 쿼리 결과에서 해당 유형을 읽거나 업데이트 된 POI / 폴리곤을 저장하는 방법은없는 것 같습니다.

개발자는 실제로 저장 프로 시저 수준에서 변환 자체를 처리해야합니까? 아니면 기본적으로 형식을 사용하는 방법이 있습니까?


프로그래밍에 대해 질문 할 때 StackOverflow에서 더 잘 요청할 수 있습니다.
Ian

2
@Ian이 사이트의 범위는 원래 " 프로그래머 , DBA ,지도 제작자, 지리학자 및 GIS에 전문적으로 관심이있는 사람을 위한 Q & A 사이트 "(강조 광산)
Rowland Shaw

답변:


16

데스크톱 응용 프로그램입니까 아니면 Silverlight 응용 프로그램입니까? 웹 기반이라면 일부 농구대를 뛰어 넘어야합니다. WKT를 표시하는 뷰를 만든 다음 WKT 클라이언트 쪽을 WPF / Silverlight 형상으로 구문 분석 할 수 있습니다.

데스크톱 응용 프로그램이라면 훨씬 쉽습니다. SQL Geometry 뷰어 의 코드 프로젝트 에는 데스크톱 또는 웹 모두에 도움 이되는 좋은 예가 있습니다.

SQLGeometry 또는 SQLGeography를 직접 사용하려면 SQL Server Install / 100 / SDK / Assemblies에있는 Microsoft.SqlServer.Types.dll을 참조해야합니다 .

RIA와 같은 기술은 이러한 유형을 이해하지 못하지만 해결 방법이 있습니다. 기본적으로 형상을 varbinary (max)로 캐스트하는 뷰를 작성하고 OR 맵퍼, RIA, LINQ 등에서 사용한 다음 클라이언트에서 다시 변환하십시오. 여기에 좋은 튜토리얼이 있습니다

매우 늦게 편집 : 앞에서 언급 한 DLL이 Silverlight에 대해 컴파일되지 않았기 때문에 Silverlight가이를 수락하지 않습니다. 많은 사람들의 희망 목록에서 Silverlight 호환 버전을 얻는 것이 좋습니다!



2

SQL Server 데이터 형식을 사용할 수 있으며 nuget 또는 여기에서 가져올 수 있습니다. http://www.microsoft.com/en-us/download/details.aspx?id=16177 (페이지 끝 근처)

그 후, 너겟이 나이 링크에서 유창한 nhibernate를 다시 사용할 수 있습니다 : (10 회 담당자가없는 것처럼 여기에 링크를 삽입 할 수 없습니다 ...)

그런 다음, SQL 유형을 nhibernate의 clr 유형에 맵핑하려면 사용자 정의 UserType이 필요합니다. 운 좋게도,이 사람은 하나를 만들었습니다. http://blogs.ugidotnet.org/mik/archive/2010/03/26/map-sql-server-2008-geography-type-with-fluent-nhibernate.aspx

도움이 되었기를 바랍니다 !




1

FDO (Feature Data Objects) 라이브러리를 사용하면 단일 통합 인터페이스 세트를 통해 다양한 지리 공간 데이터 형식 (SQL Server 포함)에 액세스 할 수 있습니다.

라이브러리는 C ++로되어 있지만 .net 래퍼도 함께 제공됩니다.

http://fdo.osgeo.org


0

nHibernate를 보셨습니까 ? 공간 .NET 유형 (위의 dmbrubac에 설명 됨)을 사용하지만 SQL 서버 이외의 다른 DB 시스템과도 통신 할 수 있습니다.

UI 수준을 요청했는지는 모르겠지만 여기에는 2 센트가 있습니다. SharpMap, GeoAPI와 함께 일하고 몇 년 전에 휴식했습니다. 그들은 훌륭하지만 비즈니스 응용 프로그램에 사용하기에 충분히 성숙하다고 말할 수있는 경기장에 도달하지 못했습니다. 1 년 전에 ESRI의 Silverlight 및 WPF API를 실험하고 API를 사용하는 두 가지 프로토 타입을 만들었습니다. 훌륭하지만 무료는 아니지만 실제로 견고하고 최신 기술이며 원하는 모든 작업을 수행합니다.


우리의 시각화 엔진과 마찬가지로 UI 비트는 쉬운 비트입니다.
Rowland Shaw

0

웹 클라이언트를 작성하는 경우 한 가지 옵션은 현재 Esri의 MapIt 제품과 함께 패키지 된 ArcGIS Spatial Data Service를 사용하는 것입니다 ( http://resources.esri.com/MapIt 참조 ). 이 서비스는 RESTful 웹 서비스를 통해 SQL Server 테이블을 노출합니다. 웹 서비스는 ArcGIS JSON 형식을 사용하므로 ArcGIS Web API에서 SQL Server 공간 데이터가있는 테이블을 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.