Создание объектов через ArcObjects

0 голосов
спросил 19 Март, 09 от leshy (520 баллов) в категории Программные продукты Esri
Возможно ли создание объектов (Polygon) через ArcObjects в определенном слое? Желательно пример...

делаю так:
[Java]
            Polygon polygon = new Polygon();
            Point point = null;
            Point beforePoint = null;
            for (Coordinate coord: coords) {
               point = new Point();
               point.setX(coord.getDoubleX());
               point.setY(coord.getDoubleY());
              
               polygon.addPoint(point, beforePoint, null);
               beforePoint = point;
            }
            polygon.close();

ошибка вываливается уже при вызове конструктора Polygon polygon = new Polygon();

AutomationException: 0x5 - Access is denied. in 'Invoke'
        at com.esri.arcgis.interop.Rpc.a(Unknown Source)
        at com.esri.arcgis.interop.jb.a(Unknown Source)
        at com.esri.arcgis.interop.Dispatch.createDispatch(Unknown Source)
        at com.esri.arcgis.interop.Dispatch.<init>(Unknown Source)
        at com.esri.arcgis.geometry.IPointCollectionProxy.<init>(Unknown Source)
        at com.esri.arcgis.geometry.Polygon.<init>(Unknown Source)
        at com.esri.arcgis.geometry.Polygon.<init>(Unknown Source)

подозреваю, что что-то недонастроили при публикации геоданных, но может быть проблема не в этом?

далее не понятно как созданный полигон разместить в определенном слое...

ArcGis Server 9.3 SP1 Java

3 Ответы

0 голосов
ответил 20 Март, 09 от leshy (520 баллов)
выяснилось, что если сервер, в котором выполняется код выше, разместить на той же машине, что и SOC и SOM, то проблема "Access is denied" уже не возникает...
0 голосов
ответил 20 Март, 09 от Grigoriy (127,020 баллов)
Совсем не обязательно размещать сервер на той же машине, достаточно создать подключение к локальному серверу.

http://webhelp.esri.com/arcgisserver/9.3/java/selecting_svcs_display.htm

ArcGIS Server Local
An ArcGIS Server Local connection is used for connecting to a GIS server on a local area network. ArcGIS Server Local connections are most suitable for Web editing layers and layers that will be worked with through fine-grained ArcObjects.

To make an ArcGIS Server Local connection, you must enter the name of the GIS server you wish to connect to (specifically, the name of the server object manager, or SOM, machine). You must also enter a user name and password that corresponds to an account in the agsusers or agsadmin group on that GIS server

    
0 голосов
ответил 20 Март, 09 от leshy (520 баллов)
проблему "Access is denied" решил :)
оказывается, создавать объекты вместо
polygon = new Polygon();
point = new Point();
надо
Polygon polygon = (Polygon)serverContext.createObject(Polygon.getClsid());
point = (Point)serverContext.createObject(Point.getClsid());
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...