Как получить координаты центра полигона

0 голосов
спросил 08 Май, 08 от CharlyX (480 баллов) в категории Программные продукты Esri
Извиняюсь, может быть тупой вопрос, но я новичок в ArcGIS.

Есть связка Oracle+SDE+ArcGis9.2+Delphi.

Надо найти объект в базе и получит его координаты.

Делаю вот так:

fAdvertLayer: IFeatureLayer;
pFeature : IFeature;
pFilter : IQueryFilter;

pFilter := CoQueryFilter.Create as IQueryFilter;
pFilter.Set_WhereClause('CODE = ' + IntToStr(ID)); //задаём фильтр

fAdvertLayer.Search(pFilter,false,pFeatureCursor); //ищём запись

pFeatureCursor.FindField('SHAPE',i); //ищём поле и его номер
pFeature := CoFeature.Create as IFeature;
pFeatureCursor.NextFeature(pFeature); // получаем запись

pFeature.Get_Value(i,pk); //получаем занчение записи

а вот как дальше... никак не могу понять... как привязать к полигону эту запись и получить координаты?

помогите, плиз...

З.Ы. можно на VB писать.

7 Ответы

0 голосов
ответил 12 Май, 08 от Tatkis (2,420 баллов)
Создайте объект-полигон новый и присвойте ему pFeature.Shape
А потом уже можете у полигона смотреть координаты вершин и все прочее :)
0 голосов
ответил 12 Май, 08 от CharlyX (480 баллов)
Вот... только почему-то не получается...
Делаю так:

      pNew := CoPolygon.create as IGeometry;
      pFeature.Get_Shape(pNew); // вот здесь ошибка Акцес виолейшон вылетает...

0 голосов
ответил 12 Май, 08 от Dorofeev1 (6,460 баллов)
нет ничего проще
присваивайте  геомертию полигона объекту IArea, центр определяется как pArea.Centroid
Например
  set pArea=pFeature.Shape
  pArea.Centroid.X - координата Х центра
  pArea.Centroid.Y - координата Y центра
0 голосов
ответил 13 Май, 08 от CharlyX (480 баллов)
пробовал и так

      pNew := CoPolygon.create as IArea;
      pFeature.Get_Shape(IGeometry(pNew)); //таже ошибка.

Не могу понять в чём дело.

0 голосов
ответил 13 Май, 08 от CharlyX (480 баллов)
Нашёл похожую проблему
http://forums.esri.com/Thread.asp?c=159&f=1710&t=188677&mc=6#msgid558790

Но блин где же взять
esriGeodatabase_TLB.pas из ArcEngine Developer Help Samples

у меня нету :(
0 голосов
ответил 13 Май, 08 от Dorofeev1 (6,460 баллов)
ну в дефях я не силен, но по-моему вы создаете полигон, чего делать не нужно.

0 голосов
ответил 13 Май, 08 от CharlyX (480 баллов)
Всё разобрался. Всё правильно я делал, просто делфя не правильно импортировала СОМ. Поставил патч и всё заработало.
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...