ArcGIS 10.1 server, ITopologicalOperator?

897
4
11-12-2012 11:19 PM
Hyung_SangPark
New Contributor
hello.

I made a desktop application ArcGIS 9.3 Engine with .Net, long time ago.

Polygon - Intersect - user input Line = intersected points

ITopologicalOperator topologicalOperator = feature.Shape as ITopologicalOperator;
    topologicalOperator.Simplify();
    IGeometryCollection geometryColl = topologicalOperator.Intersect(geometry, esriGeometryDimension.esriGeometry0Dimension) as IGeometryCollection;

    for (int i = 0; i < geometryColl.GeometryCount; i++)
    {
        IPoint _point = geometryColl.get_Geometry(i) as IPoint;
    }            


like attachement picture.
[ATTACH=CONFIG]19249[/ATTACH]


How do i this ArcGIS Server 10.1 JSAPI ?

I try the polygon rings to simpleline and roop esri.geometry.getLineIntersection()...
then horrable times blocked UI...
0 Kudos
4 Replies
JohnGravois
Frequent Contributor
im not sure exactly what you're trying to accomplish.  but the intersect operation exposed by an ArcGIS Server geometry service provides an approach to compare geometries in a similar way to what you can do with AO on the desktop.
0 Kudos
Hyung_SangPark
New Contributor
thanks. john gravois.

im not sure exactly what you're trying to accomplish.  but the intersect operation exposed by an ArcGIS Server geometry service provides an approach to compare geometries in a similar way to what you can do with AO on the desktop.


I use "geometryService.intersect()" follow

    dojo.connect(m_selectionToolbar, "onDrawEnd", function (geometry) {

        m_map.graphics.add(new esri.Graphic(geometry, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([255, 0, 0]), 3)));

        var identifyParams = new esri.tasks.IdentifyParameters();
        identifyParams.tolerance = 0;
        identifyParams.returnGeometry = true;
        identifyParams.layerIds = queryLayers;
        identifyParams.layerOption = esri.tasks.IdentifyParameters.LAYER_OPTION_ALL;
        identifyParams.width = m_map.width;
        identifyParams.height = m_map.height;

        identifyParams.geometry = geometry;
        identifyParams.mapExtent = m_map.extent;

        var identifyTask = new esri.tasks.IdentifyTask(m_basemapLayer.url);
        identifyTask.execute(identifyParams, function (identifyResults) {

            dojo.forEach(identifyResults, function (identifyResult) {

                if (identifyResult.geometryType == "esriGeometryPolygon") {
                    var geometryService = esri.config.defaults.geometryService;
                    geometryService.intersect([identifyResult.feature.geometry], geometry, function (intersectLines) {
                        intersectLines;
                    }, function (error) {
                        error;
                    });
                }
            });

        });
    });


then i can get intersected PolyLines. but this is not done.

How to get intersected Points?

sorry my English. see my attachment image file. please.

[ATTACH=CONFIG]19273[/ATTACH]
0 Kudos
nicogis
MVP Frequent Contributor
you manage client-side or you create a soe for this function (in doc rest I don't see the parameter resultDimension for geometry intersect )
0 Kudos
Hyung_SangPark
New Contributor
you manage client-side or you create a soe for this function (in doc rest I don't see the parameter resultDimension for geometry intersect )


thanks for reply.

i tried cilent side. but Polygon.rings are too huge.
so... single thread javascript is idle, long long time.

i can't do that cilent side.
0 Kudos