Страница 1 из 1

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

Добавлено: 05 май 2013, 23:18
DimDim
не подскажите, что мне спросить у Гугла для конвертации этих координат в остальных датасетах? Я использую MS SQL Server и C#.

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

Добавлено: 06 май 2013, 07:08
trir
Если C# - то я бы посоветовал dotspatial. Умеет пересчитывать координаты, читает .shp'ы и легко можно научить работать с WKB/WKT

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

Добавлено: 06 май 2013, 17:18
DimDim
trir, спасибо за подсказку!
Обязательно посмотрю.

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

Добавлено: 09 май 2013, 20:41
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 />");
}
************

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

Добавлено: 09 май 2013, 21:23
trir

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

Добавлено: 09 май 2013, 21:25
DimDim
ок, спасибо!

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

Добавлено: 09 май 2013, 21:48
Максим Дубинин
WKB вообще нигде в данных не появляется.