Конвертация координат, MS SQL Server и C#
-
- Участник
- Сообщения: 76
- Зарегистрирован: 30 апр 2013, 13:22
- Репутация: 6
- Откуда: Москва
- Контактная информация:
Конвертация координат, MS SQL Server и C#
не подскажите, что мне спросить у Гугла для конвертации этих координат в остальных датасетах? Я использую MS SQL Server и C#.
Последний раз редактировалось Максим Дубинин 09 май 2013, 21:50, всего редактировалось 1 раз.
Причина: отделено из http://gis-lab.info/forum/viewtopic.php?f=3&t=12882
Причина: отделено из http://gis-lab.info/forum/viewtopic.php?f=3&t=12882
-
- Гуру
- Сообщения: 5354
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Открытые данные с портала data.mos.ru
Если C# - то я бы посоветовал dotspatial. Умеет пересчитывать координаты, читает .shp'ы и легко можно научить работать с WKB/WKT
-
- Участник
- Сообщения: 76
- Зарегистрирован: 30 апр 2013, 13:22
- Репутация: 6
- Откуда: Москва
- Контактная информация:
Re: Открытые данные с портала data.mos.ru
trir, спасибо за подсказку!
Обязательно посмотрю.
Обязательно посмотрю.
-
- Участник
- Сообщения: 76
- Зарегистрирован: 30 апр 2013, 13:22
- Репутация: 6
- Откуда: Москва
- Контактная информация:
Re: Открытые данные с портала data.mos.ru
dotspatial - крутая штука!
Вот код на C# для конвертации координат:
Вот код на 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 раза.
-
- Гуру
- Сообщения: 5354
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
-
- Участник
- Сообщения: 76
- Зарегистрирован: 30 апр 2013, 13:22
- Репутация: 6
- Откуда: Москва
- Контактная информация:
Re: Открытые данные с портала data.mos.ru
ок, спасибо!
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Открытые данные с портала data.mos.ru
WKB вообще нигде в данных не появляется.
пристегивайтесь, турбулентность прямо по курсу
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость