Làm cách nào tôi có thể sử dụng các loại không gian của SQL Server từ ứng dụng .Net?


14

Đối với một dự án sắp tới, một trong những yêu cầu là lưu trữ và sử dụng dữ liệu geogrpahic cơ bản như là một phần của ứng dụng SQL-Server / .Net hiện có.

Rõ ràng là chúng ta có thể sử dụng các loại Không gian SQL, tuy nhiên, dường như không có cách nào để (nói) đọc chúng từ kết quả của truy vấn SQL hoặc để lưu POI / đa giác được cập nhật.

Các nhà phát triển có thực sự phải tự xử lý việc chuyển đổi ở cấp thủ tục Lưu trữ hay có cách nào sử dụng các loại nguyên bản không?


điều này có thể được hỏi tốt hơn trên StackOverflow khi bạn hỏi về lập trình.
Ian

2
@Ian Phạm vi cho trang web này ban đầu được định nghĩa là "Trang web hỏi đáp dành cho lập trình viên , DBA , người vẽ bản đồ, nhà địa lý và bất kỳ ai quan tâm đến GIS một cách chuyên nghiệp" (nhấn mạnh của tôi)
Rowland Shaw

Câu trả lời:


16

Đây có phải là một ứng dụng máy tính để bàn hay, ứng dụng Silverlight? Nếu nó dựa trên web, bạn phải nhảy qua một số vòng. Bạn có thể tạo chế độ xem hiển thị WKT và sau đó phân tích phía máy khách WKT thành hình học WPF / Silverlight.

Nếu đó là một ứng dụng máy tính để bàn, bạn đã có nó dễ dàng hơn một chút. Có một ví dụ điển hình tại Dự án mã của trình xem Hình học SQL sẽ giúp cho cả máy tính để bàn hoặc web.

Bạn cần tham khảo Microsoft.SqlServer.Types.dll, được tìm thấy tại SQL Server Install / 100 / SDK / Assemblies để sử dụng trực tiếp SQLGeometry hoặc SQLGeography.

Các công nghệ như RIA không hiểu các loại này nhưng có một cách giải quyết. Về cơ bản, bạn tạo một khung nhìn biến hình học thành một biến thể (tối đa), sử dụng nó trong trình ánh xạ OR, RIA, LINQ, v.v. của bạn và sau đó chuyển đổi nó trở lại trên máy khách. Có một hướng dẫn tốt ở đây

Chỉnh sửa rất muộn: Silverlight sẽ không chấp nhận chúng vì DLL được đề cập trước đó không được biên dịch chống lại Silverlight. Nhận phiên bản tương thích Silverlight là cao trong danh sách mong muốn của nhiều người!



2

Bạn có thể sử dụng các loại dữ liệu máy chủ sql, bạn có thể lấy chúng từ nuget hoặc tại đây: http://www.microsoft.com/en-us/doad/details.aspx?id=16177 (gần cuối trang)

Sau đó, bạn có thể sử dụng thông thạo nhibernate, một lần nữa từ nuget hoặc liên kết này: (Không thể chèn liên kết ở đây vì có vẻ như tôi không có 10 đại diện ...)

Sau đó, bạn sẽ cần một UserType tùy chỉnh để ánh xạ loại sql sang loại clr trong nhibernate. May mắn cho bạn, anh chàng này đã tạo ra một: http://bloss.ugidotnet.org/mik/archive/2010/03/26/map-sql-server-2008-geography-type-with-fluent-nhibernate.aspx

Hi vọng điêu nay co ich !




1

Thư viện đối tượng dữ liệu tính năng (FDO) cho phép bạn truy cập các định dạng dữ liệu không gian địa lý khác nhau (bao gồm cả SQL Server) thông qua một bộ giao diện thống nhất duy nhất.

Thư viện nằm trong C ++, nhưng thư viện cũng đi kèm với trình bao bọc .net.

http://fdo.osgeo.org


0

Bạn đã có một cái nhìn tại nHibernate ? Nó sử dụng các loại .NET không gian (như được mô tả bởi dmbrubac ở trên) nhưng cũng có thể nói chuyện với các hệ thống DB khác ngoài máy chủ SQL.

Tôi không biết nếu bạn cũng đã yêu cầu cấp độ UI, nhưng đây là 2 xu của tôi: Tôi đã làm việc với SharpMap, GeoAPI và nghỉ ngơi vài năm trước. Họ rất tuyệt nhưng không bao giờ đến được một sân vận động nơi bạn có thể nói rằng họ đủ trưởng thành để được sử dụng trong một ứng dụng kinh doanh. Tôi đã thử nghiệm với API Silverlight và WPF của ESRI một năm trước và tạo ra hai nguyên mẫu sử dụng API. Thật tuyệt, nó không miễn phí nhưng nó thực sự vững chắc, hiện đại và nó làm tất cả những điều bạn muốn nó làm và hơn thế nữa.


Bit UI là bit dễ dàng, vì chúng tôi là công cụ trực quan của chúng tôi.
Rowland Shaw

0

Nếu bạn đang viết một ứng dụng web, một tùy chọn là sử dụng Dịch vụ dữ liệu không gian ArcGIS, hiện đang được đóng gói với sản phẩm MapIt của Esri (xem http://resource.esri.com/MapIt ). Dịch vụ hiển thị các bảng SQL Server thông qua dịch vụ web RESTful. Dịch vụ web sử dụng định dạng ArcGIS JSON, do đó, các bảng có dữ liệu không gian SQL Server có thể được sử dụng làm FeatureLayers trong API Web ArcGIS. Nếu bạn muốn một máy khách để bàn, bạn có thể sử dụng API WPF.

Một cách khác để phát triển máy tính để bàn là sử dụng các loại CLR của SQL Server đi kèm với các gói tính năng của SQL Server. Bạn có thể tìm thấy trang tải xuống cho gói tính năng R2 R2 tại đây - http://www.microsoft.com/doads/en/details.aspx?displaylang=en&F FamilyID = rab4346f-657f-4d28-83f5- aae0c5c83d52 . Cuộn xuống hoặc tìm "Loại CLR" để tìm liên kết tải xuống.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.