У нас есть веб-приложение с компонентом сопоставления (ASP.NET/SQL Server 2005, Google Maps API). Компонент сопоставления развивается - он начинался как простая, удобная функция и постепенно становится краеугольным камнем приложения; поэтому мы начинаем выполнять более сложные задачи отображения. Я пытаюсь понять, какая платформа для этого лучше всего. Некоторые примеры того, что нам нужно сделать:
- Чтение и запись KML
- Найти все точки на определенном расстоянии от данной точки
- Найдите, какой многоугольник содержит точку (например, в какой провинции находится эта точка)
- Найдите, какой многоугольник содержит данный многоугольник (например, в какой провинции находится этот округ)
- Импорт данных из других форматов, таких как шейп-файлы ArcGIS.
- (Возможно) Самостоятельно обслуживать фрагменты карты вместо того, чтобы полагаться на API Gmaps.
Кое-что из этого мы уже делаем, только с нашим собственным кодом. Мы храним координаты как пары десятичных столбцов, фигуры как фрагменты KML и реализовали некоторые стандартные алгоритмы (точка в многоугольнике и т. Д.) В нашем собственном коде. Пока мы не полагались ни на какие сторонние компоненты, библиотеки с открытым исходным кодом или компоненты пространственных данных, но я хотел бы найти надежную платформу для этого материала, которая хорошо протестирована и даст нам возможность расти.
Некоторые варианты, которые я рассматриваю, включают:
- Пространственные компоненты SQL Server 2008 для создания историй и запросов к геоданным
- SharpMap или NetTopologySuite для управления геоданными в .NET-коде
Есть ли другие варианты, которые мне следует рассмотреть? Каковы ваши рекомендации?