Страница 1 из 1
shapefile для России
Добавлено: 21 май 2010, 11:25
sever
Добрый день.
У меня такой вопрос: требуется программно создать карту России с субъектами. Взял готовый shapefile с этого сайта. Загрузил слой с area. Карта отрисовалась. ВСЕ чудно, но маленькая восточная часть страны оказалась где-то слева на карте. Я так понимаю, это связано с тем, что информация для России в этом файле склеена из ряда частей карты мира. Можно как-то поправить этот момент (хотелось бы видеть целостную территорию страны)?
Спасибо.
Re: shapefile для России
Добавлено: 21 май 2010, 11:51
Дмитрий Барышников
Нужно использовать другую проекцию, например, см.
http://gis-lab.info/qa/gis-lab-projections.html
Re: shapefile для России
Добавлено: 21 май 2010, 13:37
sever
Спасибо. А не могли бы Вы поподробнее описать процесс? Я не очень понял суть этих проекций.
Заранее благодарю.
Re: shapefile для России
Добавлено: 21 май 2010, 13:48
sever
Re: shapefile для России
Добавлено: 21 май 2010, 14:02
SS_Rebelious
Лучше берите данные
отсюда - они точнее.
Вот
границы субъектов в подходяшей проекции
Re: shapefile для России
Добавлено: 21 май 2010, 14:07
sever
Спасибо за совет. То, что надо.
А если я сверху еще одним слоем положу
населенные пункты, то они корректно отобразятся?
Re: shapefile для России
Добавлено: 21 май 2010, 14:34
SS_Rebelious
sever писал(а):А если я сверху еще одним слоем положу населенные пункты, то они корректно отобразятся?
Если в той ГИС, которой вы пользуетесь включить перепроецирование на лету, то да.
Re: shapefile для России
Добавлено: 21 май 2010, 14:39
sever
SS_Rebelious писал(а):sever писал(а):А если я сверху еще одним слоем положу населенные пункты, то они корректно отобразятся?
Если в той ГИС, которой вы пользуетесь включить перепроецирование на лету, то да.
Что-то я не могу получить результат. Подскажите пожалуйста, как это сделать.
Я делаю так:
Код: Выделить всё
// добавил слой с субъектами РФ из regions2010.shp
// ......
// новый слой для населенных пунктов
MapWinGIS.Shapefile shapefile3 = new MapWinGIS.Shapefile();
shapefile3.Open(@"H:\Develop\Projects\Maps\pop-miscellaneous-population-p-gislab_Вологодская_область.shp", null);
shapefile3.Projection = "+proj=aea +lat_1=52 +lat_2=64 +lat_0=0 +lon_0=105 +x_0=18500000 +y_0=0 +ellps=krass +units=m +towgs84=28,-130,-95,0,0,0,0 +no_defs "; // тут меняю проекцию
intHandler3 = axMap1.AddLayer(shapefile3, true);
//отрисовываю слой
Re: shapefile для России
Добавлено: 21 май 2010, 14:40
sever
заметил, что
Код: Выделить всё
shapefile3.Projection = "+proj=aea +lat_1=52 +lat_2=64 +lat_0=0 +lon_0=105 +x_0=18500000 +y_0=0 +ellps=krass +units=m +towgs84=28,-130,-95,0,0,0,0 +no_defs ";
не меняет проекцию
Re: shapefile для России
Добавлено: 22 май 2010, 12:03
sever
можно ли как-то перепроецировать файл с населенными пунктами (pop-miscellaneous-population-p-gislab_Вологодская_область.shp) по проекцию "+proj=aea +lat_1=52 +lat_2=64 +lat_0=0 +lon_0=105 +x_0=18500000 +y_0=0 +ellps=krass +units=m +towgs84=28,-130,-95,0,0,0,0 +no_defs"?
Re: shapefile для России
Добавлено: 22 май 2010, 16:41
Максим Дубинин
для QGIS рецепт пойдет? или обязательно в MapWindow?
Re: shapefile для России
Добавлено: 22 май 2010, 18:45
sever
sim писал(а):для QGIS рецепт пойдет? или обязательно в MapWindow?
Конечно, любой рецепт подойдет. Спасибо.
Re: shapefile для России
Добавлено: 22 май 2010, 20:09
Максим Дубинин
1. Загружаете слой в QGIS (должен иметь prj-файл)
2. Идете в Установки\Ввод СК - вводите нужну вам СК. Сохраняете
3. Прав. кнопкой на слой в списке - Save as - выбираете нужную СК.
