Для будущего проекта одним из требований является хранение и использование основных географических данных как части существующего приложения SQL-Server / .Net.
Кажется очевидным, что мы могли бы использовать типы SQL Spatial, однако, похоже, нет никакого способа (скажем) прочитать их из результата запроса SQL или сохранить обновленный POI / многоугольник.
Действительно ли разработчики должны сами обрабатывать преобразование на уровне хранимых процедур или есть способ использовать типы изначально?
.net
sql-server
Роуланд Шоу
источник
источник
Ответы:
Это настольное приложение или, скажем, приложение Silverlight? Если это веб-интерфейс, вы должны перепрыгнуть через несколько обручей. Вы можете создать представление, представляющее WKT, а затем проанализировать клиентскую сторону WKT в геометриях WPF / Silverlight.
Если это приложение для настольного компьютера, вам будет проще. В Project Code есть хороший пример средства просмотра SQL Geometry, которое поможет как для настольных компьютеров, так и для веб-сайтов.
Вам нужно обратиться к Microsoft.SqlServer.Types.dll, найденному в SQL Server Install / 100 / SDK / Assemblies, чтобы напрямую использовать SQLGeometry или SQLGeography.
Такие технологии, как RIA, не понимают эти типы, но есть обходной путь. По сути, вы создаете представление, которое преобразует геометрию как varbinary (max), используете его в вашем OR mapper, RIA, LINQ и т. Д., А затем преобразуете его обратно на клиенте. Существует хороший учебник здесь
Очень позднее редактирование: Silverlight также не примет их, потому что ранее упомянутые DLL не скомпилированы с Silverlight. Получение версий, совместимых с Silverlight, занимает много места в списке желаний многих людей!
источник
Вы можете использовать Silverlight ESRI API для визуализации пространственных данных, хранящихся в SQL Server 2008:
http://resources.esri.com/arcgisserver/apis/silverlight/index.cfm?fa=codeGalleryDetails&scriptID=16494
источник
Вы можете использовать типы данных SQL Server, вы можете получить их из nuget или здесь: http://www.microsoft.com/en-us/download/details.aspx?id=16177 (ближе к концу страницы)
После этого вы можете использовать свободный nhibernate, снова из nuget или по этой ссылке: (Не удалось вставить ссылку здесь, потому что, похоже, у меня нет 10 повторений ...)
После этого вам потребуется пользовательский тип пользователя, чтобы сопоставить тип sql с типом clr в nhibernate. К счастью для вас, этот парень сделал один: http://blogs.ugidotnet.org/mik/archive/2010/03/26/map-sql-server-2008-geography-type-with-fluent-nhibernate.aspx
Надеюсь это поможет !
источник
взгляните на sharpmap: http://sharpmap.codeplex.com/
источник
SharpMap - лучшее решение. Я смотрел на все остальные, и это, безусловно, самый надежный. Убедитесь, что вы используете бета-версию 2.0. Я сделал пост в блоге об этом (ссылка для скачивания включена). Не стесняйтесь проверить это.
http://www.jasonkiesel.com/index.php/119/my-go-to-collection-of-net-gis-libraries/
источник
Библиотека объектов данных объектов (FDO) позволяет получать доступ к различным форматам геопространственных данных (включая SQL Server) через единый унифицированный набор интерфейсов.
Библиотека находится на C ++, но библиотека также поставляется с оболочкой .net.
http://fdo.osgeo.org
источник
Вы смотрели на nHibernate ? Он использует пространственные типы .NET (как описано выше в dmbrubac), но также может взаимодействовать с другими системами БД, отличными от SQL-сервера.
Я не знаю, спрашивали ли вы также об уровне пользовательского интерфейса, но вот мои 2 цента: я работал с SharpMap, GeoAPI и отдыхал несколько лет назад. Они великолепны, но никогда не доходили до стадиона, где можно сказать, что они достаточно взрослые, чтобы их можно было использовать в бизнес-приложениях. Год назад я экспериментировал с Silverlight и WPF API от ESRI и создал два прототипа, которые использовали API. Это здорово, это не бесплатно, но это действительно солидно, современно, и делает все, что вы хотите, и даже больше.
источник
Если вы пишете веб-клиент, одним из вариантов является использование ArcGIS Spatial Data Service, который в настоящее время поставляется с продуктом Esri MapIt (см. Http://resources.esri.com/MapIt ). Служба предоставляет таблицы SQL Server через веб-службу RESTful. Веб-сервис использует формат ArcGIS JSON, поэтому таблицы с пространственными данными SQL Server могут использоваться как FeatureLayers в ArcGIS Web API. Если вы хотите настольный клиент, вы можете использовать WPF API.
Альтернативой для разработки десктопов является использование типов CLR SQL Server, включенных в пакеты дополнительных компонентов SQL Server. Вы можете найти страницу загрузки для пакета возможностей 2008 R2 здесь - http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=ceb4346f-657f-4d28-83f5-aae0c5c83d52 . Прокрутите вниз или найдите «CLR Types», чтобы найти ссылку для скачивания.
источник