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