Конвертация координат, MS SQL Server и C#

Вопросы по нескольким пакетам сразу, или вопросы, которые непонятно к какой ГИС отнести
Ответить
DimDim
Участник
Сообщения: 76
Зарегистрирован: 30 апр 2013, 13:22
Репутация: 6
Откуда: Москва
Контактная информация:

Конвертация координат, MS SQL Server и C#

Сообщение DimDim »

не подскажите, что мне спросить у Гугла для конвертации этих координат в остальных датасетах? Я использую MS SQL Server и C#.
Последний раз редактировалось Максим Дубинин 09 май 2013, 21:50, всего редактировалось 1 раз.
Причина: отделено из http://gis-lab.info/forum/viewtopic.php?f=3&t=12882
trir
Гуру
Сообщения: 5354
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Открытые данные с портала data.mos.ru

Сообщение trir »

Если C# - то я бы посоветовал dotspatial. Умеет пересчитывать координаты, читает .shp'ы и легко можно научить работать с WKB/WKT
DimDim
Участник
Сообщения: 76
Зарегистрирован: 30 апр 2013, 13:22
Репутация: 6
Откуда: Москва
Контактная информация:

Re: Открытые данные с портала data.mos.ru

Сообщение DimDim »

trir, спасибо за подсказку!
Обязательно посмотрю.
DimDim
Участник
Сообщения: 76
Зарегистрирован: 30 апр 2013, 13:22
Репутация: 6
Откуда: Москва
Контактная информация:

Re: Открытые данные с портала data.mos.ru

Сообщение DimDim »

dotspatial - крутая штука!
Вот код на C# для конвертации координат:

Код: Выделить всё


************
ProjectionInfo dest = KnownCoordinateSystems.Geographic.World.WGS1984;
ProjectionInfo source = KnownCoordinateSystems.Projected.World.WebMercator;
DataTable dt = MsSqlManager.ExecuteReader("SELECT WKT FROM [505];");
Regex r = new Regex(@"POINT \((?<x>\d*\.\d*)\W(?<y>\d*\.\d*)\)");
MatchCollection mc;
for (int i = 0; i < dt.Rows.Count; i++)
{
mc = r.Matches(dt.Rows["WKT"].ToString());
//Response.Write(mc[0].Groups["x"].Value + " " + mc[0].Groups["y"].Value + "<br />");

double[] vertices = new double[2];
vertices[0] = Convert.ToDouble(mc[0].Groups["x"].Value.Replace(".", ","));
vertices[1] = Convert.ToDouble(mc[0].Groups["y"].Value.Replace(".", ","));

double[] z = new double[] { 0, 0 };

DotSpatial.Projections.Reproject.ReprojectPoints(vertices, z, source, dest, 0, 1);
//Response.Write(vertices[0].ToString() + " ; " + vertices[1].ToString() + "<br />");
}
************
Последний раз редактировалось DimDim 09 май 2013, 21:23, всего редактировалось 2 раза.
trir
Гуру
Сообщения: 5354
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Открытые данные с портала data.mos.ru

Сообщение trir »

DimDim
Участник
Сообщения: 76
Зарегистрирован: 30 апр 2013, 13:22
Репутация: 6
Откуда: Москва
Контактная информация:

Re: Открытые данные с портала data.mos.ru

Сообщение DimDim »

ок, спасибо!
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Открытые данные с портала data.mos.ru

Сообщение Максим Дубинин »

WKB вообще нигде в данных не появляется.
пристегивайтесь, турбулентность прямо по курсу
Ответить

Вернуться в «Общий - ПО»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость