AxMapControl. Добавить объекты в FeatureClass

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

AxMapControl. Добавить объекты в FeatureClass

Сообщение novice »

Можно ли и как добавить все объекты с карты(геометрия объектов - точка) в FeatureClass? Можно ли создать FeatureClass не создавая базу данных?
Последний раз редактировалось novice 15 апр 2013, 09:24, всего редактировалось 1 раз.
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: AxMapControl. Добавить объекты в FeatureClass

Сообщение novice »

Подскажите, пожалуйста, как создать feature class в приложении на c#.

В приложении не используются базы данных вообще. Вся работа с АркГисом организована через AxMapControl.

Собственно вопрос программистам: могу ли я в коде создать базу данных. В ней создать featureDataset, запихать в него 50 000 точек, сохранить в б/д и его уже использовать в функции PointDensity???

Или есть способ попроще?
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: AxMapControl. Добавить объекты в FeatureClass

Сообщение novia »

зачем вы уже в который раз пишете новое сообщение вместо редактирования старого?
понравилось? жми палец вверх :!:
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: AxMapControl. Добавить объекты в FeatureClass

Сообщение novice »

при добавлении записи тема всплывает наверх, чего не происходит при редактировании. по крайне мере так было раньше
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: AxMapControl. Добавить объекты в FeatureClass

Сообщение novia »

а за флуд тема удаляется, как такой вариант?
понравилось? жми палец вверх :!:
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: AxMapControl. Добавить объекты в FeatureClass

Сообщение novice »

Как хотите: удаляйте темы... сколько бы я ни постил вопросы, но c# программиста с опытом работы с ArcGisом я на этом сайте еще не встретитил. Неужели такая редкая профессия, даже на хантере есть пара вакансий???

А темы все разные. Первая тема посвящена вопросу о том, как сформировать интерполированное изображение плотности. Кстати никакая кластеризация здесь не требуется.
Самый простой алгоритм - 1) разбить нужный экстент на матрицу квадратов. 2) Для каждой точки задать радиус обнаружения(можно тоже в виде квадрата со стороной равной половине квадрата из матрицы) 3) Посчитать для каждого квадрата из матрицы сколько точек его затрагивают. Это будет его вес 4) Нормализовать данные с учетос того что цветов будет, например, 256. 5) Закрасить каждый квадрат его цветом.
Но здесь проблема - 1) не понятно как задать прозрачность у квадратов из матрицы.
2) вблизи, все будет закрашено одним цветом - это фигово. А если задать меньше сторону квадрата - то будут жуткие тормоза.

Следующие темы уже конкретизирует несколько разных подходов к решению данной проблемы средствами ArcGis-а
На мой взгляд есть два решениея:
1) Сформировать FeatureClass из точек
2) Сформировать shp из точек и уже его использовать в интерфейсе IGeoDataset.
Оба случая мне пока не понятны.
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: AxMapControl. Добавить объекты в FeatureClass

Сообщение novia »

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

несмотря на наличие полномочий, я вряд ли буду удалять сообщения. сам против цензуры, если обсуждение идет в рамках правил форума. однако "размножение" сообщений мне кажется неправильным и я склонен впредь соединять такие множественные вопросы в один пост.

отвечая на первый вопрос - нужно создать класс, уверен, есть метод для этого ,затем открыть сессию загрузки данных/редактирования - отправить туда точки.
понравилось? жми палец вверх :!:
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: AxMapControl. Добавить объекты в FeatureClass

Сообщение novice »

Спасибо, понятно.

В идеале бы найти пример с RasterDensityOp, позволяющий из точек карты(AxMapControl) построить интерполированное изображение и отобразить это изображение на AxMapControl.
Сама документация: 1) по методу pointDensity: http://resources.esri.com/help/9.3/arcg ... ityOp.html
2) по созданию FeatureClass: http://resources.esri.com/help/9.3/arcg ... 8181d1.htm . Вот здесь не понятно, можно ли обойтись без рабочего пространства. И какое рабочее пространство мне надо указывать, если все объекты хранятся в IGraphicContainer, а сама карта хранится в AxMapControl.
Здесь говорится, что FeatureClass можно создать в Б/Д: http://resources.esri.com/help/9.3/arcg ... xample.htm
3) Вместо 2 пункта можно создать Shapefile. Но тоже не понятно как.
4) Связь FeatureLayer и FeatureClass http://gis.stackexchange.com/questions/ ... ture-layer

Часть шагов уже понятна:

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

            // 1) создали экземпляр класса
            IDensityOp pDensityOP = (IDensityOp)new RasterDensityOp(); // создали объект класса IDensityOp // метод PointDensity
            object Missing = Type.Missing;
            // 2) Определили границы
            ESRI.ArcGIS.GeoAnalyst.RasterNeighborhood pNbr = new ESRI.ArcGIS.GeoAnalyst.RasterNeighborhood();
            pNbr.SetCircle(1000, ESRI.ArcGIS.GeoAnalyst.esriGeoAnalysisUnitsEnum.esriUnitsMap);
            // 3) Создаем класс пространственных объектов. Вот здесь не понятно.
            // 4) Применяем данный метод
            try
            {
                IGeoDataset rez = pDensityOP.PointDensity((IGeoDataset)pFClass01, pNbr, ref Missing); // - this line causes an exception
            }
            // 5) Отобразить rez на карте
Шаг 3 - не понятен.

И вот еще не понятно: во всех примерах shapefile или открывается, или создается в базе данных, или в него выгружается часть mxd карты в векторном формате. А можно ли создать просто пустой файл в проекции, соответствующей проекции карты и добавить в него несколько точек.
Тоже не понятно: shapefile АркГиса и обычный файл shp http://en.wikipedia.org/wiki/Shapefile - это одно и тоже?
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: AxMapControl. Добавить объекты в FeatureClass

Сообщение novia »

novice писал(а): Тоже не понятно: shapefile АркГиса и обычный файл shp http://en.wikipedia.org/wiki/Shapefile - это одно и тоже?
он самый
понравилось? жми палец вверх :!:
dime1
Гуру
Сообщения: 939
Зарегистрирован: 29 май 2011, 19:41
Репутация: 94
Откуда: Киев

Re: AxMapControl. Добавить объекты в FeatureClass

Сообщение dime1 »

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

3) Создаем класс пространственных объектов. Вот здесь не понятно.
Мне часто кажется, что я говорю очевидные вещи, но за создание нового класса пространственных объектов отвечает функция АркТулбокса Data Mangement Tools->Feature Class->Create Feature Class. В которой задаётся тип пространственных объектов (полигоны, точки, полилинии) и система координат. Т.е. с её помощью и создаётся шейпфайл, типа mypoints.shp
Шейпфайл может создаваться как в .gdb (базе геоданных), так и просто в папке. И да, он изначально создаётся пустой и с указанной системой координат.
Шейпфайл никаким боком к файлу проекта (.mxd) не привязан. Шейпфайл создаётся пустой, и только потом добавляется в проект.
Хотя я не все посты прочитал :D
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: AxMapControl. Добавить объекты в FeatureClass

Сообщение novice »

Спасибо, путь понятен: из ArcMap cоздать shapefile для точек, затем в проге его скопировать, заполнить точками (тут тоже пока трудность), сохранить и использовать для PointDensity.

Собственно меня интересовало: можно ли создать shapefile в программе (или в ArcMap-e) без создания базы данных.

Это достаточно принципиальный вопрос. А путь, про который рассказывате вы, использует базу данных. Т.к., насколько я знаю, при использовании ArcMap автоматически используется база данных default.gdb

Также, если сохранять шейпфал просто в некоторой директории, то мне не понятно, где хранится его атрибутивная информация.

И еще: есть у кого-то литература про рабочиепространства ArcGis-a? Желательно ссылку на дерево классов ArcGis - а. (хотя бы ту его часть, которая относится к рабочим пространствам?)?
dime1
Гуру
Сообщения: 939
Зарегистрирован: 29 май 2011, 19:41
Репутация: 94
Откуда: Киев

Re: AxMapControl. Добавить объекты в FeatureClass

Сообщение dime1 »

Из того, что знаю:
- shapefile можно создавать в обычной директории ОС, путь хранения указывается в Create Feature Class. В директории будет находиться
mypoints.dbf (вот тут и храниться атрибутивная таблица)
mypoints.prj (файл проекции)
mypoints.shp (собственно сам шейпфайл, который не откроется без всех остальных файлов)
mypoints.sbn
mypoints.sbx
mypoints.shx
mypoints.xml
Из того, о чём догадываюсь:
- default.gdb - действует как папка Temp (в Windows). default.gdb создается во время установки ArcGIS на компьютер (она есть всегда). НО! если шейпфайл создан в директории, то он совершенно никак не связан с default.gdb.
Ответить

Вернуться в «ArcGIS»

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

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