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; }
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 )
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.
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; }); } }); }); });
Přihlášení členové mohou přispívat, sledovat aktualizace a další. Jste tu noví? Zaregistrujte si bezplatný účet.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.