Как я могу показать некоторые шейп файлы / общеизвестные текстовые данные на Google Maps / MS Virtual Earth? - PullRequest
3 голосов
/ 12 ноября 2008

У меня есть некоторые данные шейп-файла (данные демографической / тепловой карты в США, такие как преступность в Нью-Йорке), импортированные в базу данных sql server 2008, тип данных поля: География .

Как я могу получить эти данные из запроса select в формате, который затем можно отобразить на картах Google или в Microsoft Earth Virtual?

спасибо!

Редактировать 1: До сих пор лучшим решением было использование (бесплатной) сторонней библиотеки dll ( SharpMap ). Я надеюсь, что кто-то может предложить некоторые трюки SQL в SQL2008, чтобы вернуть его в совместимом формате ...

Ответы [ 3 ]

3 голосов
/ 23 февраля 2009

Ссылка Sharpmap Джери Ланглуа на 0,9. Если вы хотите иметь преимущество, репозиторий находится здесь: http://sharpmapv2.googlecode.com/svn

Кроме того, вы должны убедиться, что ваши данные - широта / долгота WGS84, а не что-то еще, прежде чем вы начнете помещать информацию о координатах в ваш KML. Я не знаю, как это сделать в SQLServer2008 (возможно, потребуется использовать ogr2ogr ).

используя STX и STY, вы, вероятно, можете сгенерировать некоторые теги координат для KML

select SHAPE.STX as X
    ,SHAPE.STY as Y
    ,SHAPE.STAsText() as WKT
    ,SHAPE.AsGml() as GML
from dpu.SW_SERVICE_LOCATIONS

может быть что-то вроде:

SELECT '<coordinates>'+convert(varchar,convert(decimal(20,6), SHAPE.STX),1)+
    ','+ convert(varchar,convert(decimal(20,6), SHAPE.STY),1) 
    + '</coordinates>'
FROM sw_service_locations;
2 голосов
/ 14 ноября 2008

Взгляните на этот пост - я успешно использовал его для чтения шейп-файлов и отображения их на Виртуальной Земле. Это должно дать вам основную идею о том, как наложить данные файла формы на Virtual Earth.

Чтобы использовать пространственные данные sql server 2008, я бы посмотрел проект SharpMap на codeplex. Эти инструменты использовали пост, на который я ссылался, и они поддерживают типы данных SQL Server.

0 голосов
/ 12 ноября 2008

Самый простой способ сделать это - выбрать XML, а затем преобразовать данные в GeoRSS или KML. Virtual Earth и Google Maps поддерживают KML, так что это, вероятно, самый простой способ сделать это.

Хотя есть соображения. Если у вас много вершин в ваших данных, вы, вероятно, захотите реализовать какой-то метод AJAX для извлечения только данных в виде карты. Вы можете обобщить данные в SQL 2008, чтобы сделать меньше вершин в зависимости от уровня масштабирования. Если вы масштабированы до уровня страны, вам не нужно почти столько же деталей, сколько масштабировать до города.

MapDotNet имеет множество функций для более удобного получения данных на карте Virtual Earth. Относительно легко выполнить запрос выбора и отобразить данные по вашему желанию. Я уверен, что есть другие подобные продукты для карт Google, но я лично не использовал их. Он имеет поддержку полигонов, а также тепловых карт и дает вам гораздо больше функциональности, чем просто использование Virtual Earth. Виртуальная Земля мощна, но есть много ГИС-инструментов, которые кто-то из опытных специалистов мог бы ожидать, что вам придется программировать на себя.

...