ArcGIS Engine

ArcGIS Engine

原始线要素类为地理坐标系,如何获取以米为单位的距离?

鹿果一夏 回复了问题 • 2 人关注 • 2 个回复 • 3937 次浏览 • 2024-02-22 17:17 • 来自相关话题

要素类坐标系为CGCS2000地理坐标系,在ArcMap中加载该要素类,用Measure工具选择Geodesic,Distance单位选中Meters,进行测量即可获取以米为单位的长度。Engine中如何获取该以米为单位的长度?

获取面状几何的IArea.LabelPoint()报错

ArcGIS Enginebaci 回复了问题 • 2 人关注 • 1 个回复 • 414 次浏览 • 2023-08-21 09:31 • 来自相关话题

经分析,可能是由于面中存在非常近的两个节点,小于容差,错误代码如下:
平板电脑墨迹错误代码。多次调用RtpEnabled(异常来自HRESULT:0x80040239)
不调用GP工具修复几何,ArcGIS Engine是否有办法解决该问题。测试了Simplify方法无法解决。

程序符号中的IGeometry与要素的IGeometry的关系

ArcGIS Enginejiushidt 回复了问题 • 2 人关注 • 1 个回复 • 668 次浏览 • 2023-02-21 10:32 • 来自相关话题

在定义程序型符号时 要重写IGeometricEffect接口中的Reset方法
 void IGeometricEffect.Reset(IGeometry Geometry)
        {
            m_pGeom = Geometry;
            m_bDone = false;
        }
跟踪发现 传入的Geometry并不是要素几何的地理坐标(

Arcengine开发,设定空间参考的界面

ArcGIS Enginebaci 回复了问题 • 3 人关注 • 2 个回复 • 3129 次浏览 • 2023-02-01 17:21 • 来自相关话题

Arcengine开发的时候,有没有arccatalog里边那样,设置空间参考的控件呢?
如果没有的话,自己开发,像下边这样的投影类型枚举和地理坐标系枚举,在哪能够获取呢?
看了下esriSRProjCSType和esriSRGeoCSType的值,跟里边的也对应不上,有什么方法获取吗?









 

如何获取CAD注记的中心点?

ArcGIS Enginebaci 回复了问题 • 2 人关注 • 2 个回复 • 709 次浏览 • 2023-02-01 14:29 • 来自相关话题

如下图所示的CAD注记,对齐方式为左对齐,在ArcMap里把CAD注记转点或者使用IFeature.Extent获取到的都是左下角的点,怎么获取到CAD注记的中心点呢。

如何监听ArcMap属性表选择事件

ArcGIS Enginebaci 回复了问题 • 2 人关注 • 1 个回复 • 690 次浏览 • 2022-11-24 09:42 • 来自相关话题

ArcMap中打开的属性表,如何在Add-In程序中监听属性表选择变化事件

ArcEngine 导出图片内存泄露问题

ArcGIS Enginethm 回复了问题 • 7 人关注 • 6 个回复 • 3443 次浏览 • 2022-10-17 18:12 • 来自相关话题

private Image ExportMap(IEnvelope pEnvelope, int width, int height)
{
IExport export = GetMapExport(TileParameter2.StorageInfo.Format.ToString().ToLower(), _backColor, (short)TileParameter2.StorageI

用ae写入gdb的线图层,1秒500条算不算慢?是否有其他更快的写入方案?

回复

ArcGIS Enginecannel 发起了问题 • 1 人关注 • 0 个回复 • 1144 次浏览 • 2021-07-12 12:40 • 来自相关话题

用ae写入gdb的线图层,线几何很简单,属性字段较多有20多个,目前速度1s大概500条,希望能更快些
其他方案可以接受换数据库类型(例如换sde),也可以换接口类型(例如不用ae)

WPF下能使用ArcGIS Engine进行二次开发吗

ArcGIS Enginejiushidt 回复了问题 • 2 人关注 • 1 个回复 • 1424 次浏览 • 2021-04-06 11:52 • 来自相关话题

请问 WPF下能使用ArcGIS Engine进行二次开发吗?之前都是在winForm下进行开发的,不知道WPF下能进行开发

java执行IInterpolationOp

ArcGIS Engine桨声灯影 回复了问题 • 3 人关注 • 2 个回复 • 2455 次浏览 • 2020-11-04 19:52 • 来自相关话题

使用java基于arcengine 运行idw内插 使用IInterpolationOp接口 设置了输出目录
pRasterAnalysisEnvironment.setOutWorkspaceByRef(pWorkspace);
为什么执行产生的临时文件不在设置的目录下 会跑到程序根目录?
另外如何获取或者删除运行过程中的临时文件?

Project工具报错 000365 : 无效的地理(坐标)变换。

ArcGIS Desktopxpauly 回复了问题 • 6 人关注 • 5 个回复 • 13738 次浏览 • 2020-08-07 15:13 • 来自相关话题

 在Arcgis10.4中使用Project工具




报错 000365 : 无效的地理(坐标)变换。
同样的数据在Arcgis10.1中没有问题。

关于ArcGIS Engine中ITopologicalOperator.Simplify()方法问题?

ArcGIS Enginexiaosi9524 回复了问题 • 3 人关注 • 2 个回复 • 2043 次浏览 • 2020-07-22 22:14 • 来自相关话题

$(document).ready(function() {$('pre code').each(function(i, block) { hljs.highlightBlock( block); }); });
IGeometry FocusGeometry;
ITopologicalOperator pTopo = FocusGeometry as ITopologicalOperator
条新动态, 点击查看
朱新颖

朱新颖 回答了问题 • 2015-12-19 21:40 • 2 个回复 不感兴趣

如何在C#中调用引用了arcpy的python脚本?

赞同来自:

【解决办法】:
1.可以将该脚本制作为脚本工具,然后在Engine中直接调用该工具,推荐使用此种方法。
2.如果无法做成脚本工具,可以尝试在.Net中调用该.py文件,参考AO帮助: 
http://resources.arcgis.com/en/help/a... 显示全部 »
【解决办法】:
1.可以将该脚本制作为脚本工具,然后在Engine中直接调用该工具,推荐使用此种方法。
2.如果无法做成脚本工具,可以尝试在.Net中调用该.py文件,参考AO帮助: 
http://resources.arcgis.com/en/help/arcobjects-net/conceptualhelp/index.html#/Leveraging_ArcPy_in_a_NET_application/000100000m0s000000/
下面方式可以调用成功: 
[code]
string strPyScFile = string.Format({0}\\{1}, Application.StartupPath, zxy.py); //.py文件的路径

//Parameters 
string sArguments = string.Format({0}, strPyScFile); 
System.Diagnostics.Process p = new System.Diagnostics.Process(); 

p.StartInfo.FileName = @C:\Python27\ArcGIS10.2\python.exe;//Python程序路径 
p.StartInfo.Arguments = sArguments; 
p.StartInfo.UseShellExecute = false; 
// Do not create the black window. 
p.StartInfo.CreateNoWindow = true; 
p.StartInfo.RedirectStandardOutput = true; 
p.StartInfo.RedirectStandardInput = true; 
p.Start(); 
p.WaitForExit(); 
string result = p.StandardOutput.ReadToEnd(); //获取输出信息
【解决办法】:
 
AO帮助中有关于获取HDF的示例代码,在线网址: 
http://resources.arcgis.com/en/help/arcobjects-net/conceptualhelp/index.html#//0001000001sz000... 显示全部 »
【解决办法】:
 
AO帮助中有关于获取HDF的示例代码,在线网址: 
http://resources.arcgis.com/en/help/arcobjects-net/conceptualhelp/index.html#//0001000001sz000000 

用下面代码可以成功获取HDF5数据的三个子数据,并作为RGB图层显示。
[code]
string FileName1 = @D:\ZhuXinying\测试数据\Raster\H2A_RM2A20150113000086_0294.h5;
RasterWorkspaceFactoryClass pRasterWorkspaceFactoryClass1 = new RasterWorkspaceFactoryClass();
IWorkspace pWorkspace1 = pRasterWorkspaceFactoryClass1.OpenFromFile(System.IO.Path.GetDirectoryName(FileName1), 0);
IRasterWorkspace pRasterWorkspace = pWorkspace1 as IRasterWorkspace;
ESRI.ArcGIS.DataSourcesRaster.IRasterBandCollection rasterBandCollection = new ESRI.ArcGIS.DataSourcesRaster.RasterClass();

int[] ListSub = { 16, 17, 18 };//获取子数据集,以16 17 18为例
for (int i = 0; i < ListSub.Length; i++)
{
IRasterDataset pRasterDataset = pRasterWorkspace.OpenRasterDataset(System.IO.Path.GetFileName(FileName1));
IRasterDatasetJukebox pRasterDatasetJukebox = pRasterDataset as IRasterDatasetJukebox;
if (pRasterDatasetJukebox.SubdatasetCount > ListSub[i])
{
IRasterDatasetJukebox pRasterDatasetJukeboxdas = pRasterDataset as IRasterDatasetJukebox;
pRasterDatasetJukeboxdas.Subdataset = ListSub ;
IRasterDataset pSubDataset = pRasterDatasetJukeboxdas as IRasterDataset;
IRasterBandCollection pRasterBands1 = pSubDataset as IRasterBandCollection;
rasterBandCollection.Add(pRasterBands1.Item(0), i);
}
}

IRasterLayer pRasterLayerClass = new RasterLayerClass();
pRasterLayerClass.CreateFromRaster(rasterBandCollection as IRaster);
pRasterLayerClass.Name = asdf;
axMapControl1.AddLayer(pRasterLayerClass);
axMapControl1.Refresh();
IGeoDataset geodataset = rasterBandCollection as IGeoDataset;
ISaveAs saveAs = geodataset as ISaveAs;
saveAs.SaveAs(zxy7.tif, pWorkspace1, TIFF);
【解决办法】:
可以使用IPolycurveGeodetic.get_LengthGeodetic();方法,将要量测的IPolyline转为IPolycurveGeodetic即可。
测试代码如下:


            IPolyline poly... 显示全部 »
【解决办法】:
可以使用IPolycurveGeodetic.get_LengthGeodetic();方法,将要量测的IPolyline转为IPolycurveGeodetic即可。
测试代码如下:


            IPolyline polyline = feature.Shape as IPolyline;
         
            IPolycurveGeodetic polycurve = polyline as IPolycurveGeodetic;
            ILinearUnitEdit linearUnitEdit = new LinearUnitClass();

            //Define the properties for the linear unit 
            object name = Meter;
            object alias = Meter;
            object abbreviation = M;
            object remarks = Meter is the linear unit;
            object metersPerUnit = 1;
            linearUnitEdit.Define(ref name, ref alias, ref abbreviation, ref remarks, ref metersPerUnit);
            ILinearUnit pLU = linearUnitEdit as ILinearUnit;

            double distance = polycurve.get_LengthGeodetic(esrType.esriGeodeticTypeGeodesic,pLU);

朱新颖

朱新颖 回答了问题 • 2016-01-24 20:42 • 2 个回复 不感兴趣

Add-in扩展button,如何保存地图文档?

赞同来自:

【解决办法】:
保存mxd直接使用 IApplication.SaveDocument(); 另存为使用IApplication.SaveAsDocument(); 注意执行保存时不能有其它程序打开该mxd,如Engine或者ArcMap,测试代码如下: 
... 显示全部 »
【解决办法】:
保存mxd直接使用 IApplication.SaveDocument(); 另存为使用IApplication.SaveAsDocument(); 注意执行保存时不能有其它程序打开该mxd,如Engine或者ArcMap,测试代码如下: 


IMapDocument mapDoc = ArcMap.Application.Document as IMapDocument; 
string path = mapDoc.DocumentFilename; 

ArcMap.Application.SaveDocument(path);
朱新颖

朱新颖 回答了问题 • 2016-03-04 20:04 • 2 个回复 不感兴趣

Engine中如何对要素类进行投影变换?

赞同来自:

【解决办法】:
主要分三步:
1,由于WGS84地理坐标系和西安80投影坐标系的椭球体不同,需要先定义一个地理变换,参考AO帮助链接:
http://resources.arcgis.com/en/help/arcobjects-net/conceptualh... 显示全部 »
【解决办法】:
主要分三步:
1,由于WGS84地理坐标系和西安80投影坐标系的椭球体不同,需要先定义一个地理变换,参考AO帮助链接:
http://resources.arcgis.com/en/help/arcobjects-net/conceptualhelp/index.html#/d/0001000009sw000000.htm
2,获取要素类,遍历每个要素,获取IGeometry,使用IGeometry5.ProjectEx()方法进行投影,将投影后的Geometry重新赋值给Feature,并且报存。
http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/index.html#//002m000001rp000000
3,将处理过的要素类的空间参考改为新的空间参考,使用IGeoDatasetSchemaEdit.AlterSpatialReference方法。
http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/index.html#//0025000003mn000000

注:如果两个坐标系的椭球体相同的话,直接使用IGeometry5.Project()进行投影即可,也不需要定义地理变换

参考代码(以WGS84到西安80为例):



IGeographicCoordinateSystem wgs84GCS = createGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_WGS1984);
            IProjectedCoordinateSystem xian80PCS = createProjectedCoordinateSystem((int)esriSRProjCS4Type.esriSRProjCS_Xian1980_3_Degree_GK_CM_102E);
            IGeoTransformation geoTrans = createCustomGeoTrans((ISpatialReference)wgs84GCS, (ISpatialReference)xian80PCS);
            IWorkspace workspace = getWorkspace(esriDataSourcesGDB.FileGDBWorkspaceFactory, @E:\ZhuXinying\testData\Data.gdb);
            IFeatureClass featureClass = openFeatureClass(workspace, WGS841);
            IFeatureCursor featureCur = featureClass.Search(null, false);
            IFeature feature = featureCur.NextFeature();
            while (feature != null)
            {
                IGeometry5 geometry = feature.ShapeCopy as IGeometry5;
                geometry.ProjectEx(xian80PCS as ISpatialReference, esriTransformDirection.esriTransformForward,geoTrans, false, 0, 0);
                feature.Shape = geometry;
                feature.Store();
                feature = featureCur.NextFeature();
            }
            // 定义投影
            defineSpatialReference(featureClass as IDataset, xian80PCS);

​ private void defineSpatialReference(IDataset dataset,ISpatialReference spatialReference)
        {
            IGeoDatasetSchemaEdit geoSchemaEdit = dataset as IGeoDatasetSchemaEdit;
            if (geoSchemaEdit.CanAlterSpatialReference)
            {
                geoSchemaEdit.AlterSpatialReference(spatialReference);
            }
       }
        private IProjectedCoordinateSystem createProjectedCoordinateSystem(int WKID)
        {
            Type factoryType = Type.GetTypeFromProgID(esriGeometry.SpatialReferenceEnvironment);
            System.Object obj = Activator.CreateInstance(factoryType);
            ISpatialReferenceFactory2 pSRF = obj as ISpatialReferenceFactory2;

            // Initialize and create the input and output coordinate systems.
            IProjectedCoordinateSystem pPCS = new ProjectedCoordinateSystemClass();
            pPCS = pSRF.CreateProjectedCoordinateSystem(WKID);
            return pPCS;
        }

        private IGeographicCoordinateSystem createGeographicCoordinateSystem(int WKID)
        {
            Type factoryType = Type.GetTypeFromProgID(esriGeometry.SpatialReferenceEnvironment);
            System.Object obj = Activator.CreateInstance(factoryType);
            ISpatialReferenceFactory2 pSRF = obj as ISpatialReferenceFactory2;
           
            IGeographicCoordinateSystem pGCS = new GeographicCoordinateSystemClass();
            // Initialize and create the input and output coordinate systems.
            pGCS = pSRF.CreateGeographicCoordinateSystem(WKID);
            return pGCS;
        }
        private IGeoTransformation createCustomGeoTrans(ISpatialReference pInputSR, ISpatialReference pOutputSR)
        {
            IGeographicCoordinateSystem pGCSfrom = null;
            IGeographicCoordinateSystem pGCSto = null;
            if (pInputSR is IGeographicCoordinateSystem)
                pGCSfrom = pInputSR as IGeographicCoordinateSystem;
            else if (pInputSR is IProjectedCoordinateSystem)
                pGCSfrom = (pInputSR as IProjectedCoordinateSystem).GeographicCoordinateSystem;
            if (pOutputSR is IGeographicCoordinateSystem)
                pGCSto = pOutputSR as IGeographicCoordinateSystem;
            else if (pOutputSR is IProjectedCoordinateSystem)
                pGCSto = (pOutputSR as IProjectedCoordinateSystem).GeographicCoordinateSystem;
            
            ICoordinateFrameTransformation pCFT = new CoordinateFrameTransformationClass();
            pCFT.PutParameters(p1, p2, p3, p4, p5, p6, p7); //七参数
            pCFT.PutSpatialReferences(pGCSfrom, pGCSto);
            pCFT.Name = Custom GeoTran;
            IGeoTransformation pGeoTrans = pCFT as IGeoTransformation;
            return pGeoTrans;
        }

朱新颖

朱新颖 回答了问题 • 2016-03-27 23:47 • 2 个回复 不感兴趣

Engine中如何在布局视图下固定地图的Extent?

赞同来自:

【解决办法】:
可以通过以下步骤:
1,获取IMapFrame;
2,将IMapFrame.ExtentType设置为esriExtentTypeEnum.esriExtentBounds;
3,自定义Envelope,将其赋予IMapFrame.MapBou... 显示全部 »
【解决办法】:
可以通过以下步骤:
1,获取IMapFrame;
2,将IMapFrame.ExtentType设置为esriExtentTypeEnum.esriExtentBounds;
3,自定义Envelope,将其赋予IMapFrame.MapBounds,刷新即可。


IGraphicsContainer pGraphicsContainer = axPageLayoutControl1.GraphicsContainer; 
IMapFrame pMapFrame = pGraphicsContainer.FindFrame(axPageLayoutControl1.ActiveView.FocusMap) as IMapFrame; 
pMapFrame.ExtentType = esriExtentTypeEnum.esriExtentBounds; 
IEnvelope env = new EnvelopeClass(); 
env.PutCoords(111939.3058, 27729.6982, 131821.6658, 41643.6886); //地理坐标系下的坐标,即范围
pMapFrame.MapBounds = env; 
axPageLayoutControl1.Refresh();
朱新颖

朱新颖 回答了问题 • 2016-04-08 19:36 • 2 个回复 不感兴趣

Engine中如何删除mdb或者FileGDB?

赞同来自:

【解决办法】:
将IWorkspace转为IDataset,然后使用IDataset.Delete();进行删除。最好不要使用System.IO.File.Delete(path); 根据mdb或FileGDB的路径删除,这种方法可能删除不掉或者删不干净。

... 显示全部 »
【解决办法】:
将IWorkspace转为IDataset,然后使用IDataset.Delete();进行删除。最好不要使用System.IO.File.Delete(path); 根据mdb或FileGDB的路径删除,这种方法可能删除不掉或者删不干净。

注意:删除该workspace之前需要将使用到的FeatureClass,Feature,FeatureCursor,Field等AO对象先释放掉,可以使用System.Runtime.InteropServices.Marshal.FinalReleaseComObject();释放。



IDataset dataset = pWorkspace as IDataset; 
dataset.Delete();
【解决办法】:
通过IDisplayTable.DisplayTable获取Join后的Table。


private IFeatureClass FeatureJoinTableFon(IFeatureLayer mFeatureLayer, ITabl... 显示全部 »
【解决办法】:
通过IDisplayTable.DisplayTable获取Join后的Table。


private IFeatureClass FeatureJoinTableFon(IFeatureLayer mFeatureLayer, ITable mTable, string mFeatureField, string mTableField) 

IFeatureClass inputFeatureClass = mFeatureLayer.FeatureClass; 
ITable FeatureTable = inputFeatureClass as ITable; 
IMemoryRelationshipClassFactory memoryRelClassFactory = new MemoryRelationshipClassFactory(); 
IRelationshipClass relationshipClass = memoryRelClassFactory.Open(test, FeatureTable as IObjectClass, mFeatureField, mTable as IObjectClass, mTableField, Forwardfield, Backwardfield, esriRelCardinality.esriRelCardinalityOneToOne); 
IRelationshipClassCollectionEdit pRelClassCollEdit = mFeatureLayer as IRelationshipClassCollectionEdit; 
pRelClassCollEdit.AddRelationshipClass(relationshipClass); 
IDisplayTable displayTable = pRelClassCollEdit as IDisplayTable; 
IFeatureClass outputFeatureClass = displayTable.DisplayTable as IFeatureClass; 
return outputFeatureClass; 
}
【解决办法】:
测试后发现Engine中的SplitAtPoints方法和ArcMap的Planarize Lines方法分割椭圆弧时所得的结点坐标确实有些差别,在小数点后第四位,建议使用IFeatureConstruction.PlanarizeLines方... 显示全部 »
【解决办法】:
测试后发现Engine中的SplitAtPoints方法和ArcMap的Planarize Lines方法分割椭圆弧时所得的结点坐标确实有些差别,在小数点后第四位,建议使用IFeatureConstruction.PlanarizeLines方法,该方法所得结果与ArcMap相同,测试代码如下:


IFeatureLayer FL = axMapControl1.get_Layer(0) as IFeatureLayer; 
ISelection sel = axMapControl1.Map.FeatureSelection; 
IEnumFeature features = sel as IEnumFeature; 
IFeatureConstruction con = new FeatureConstructionClass(); 
con.PlanarizeLines(null, features, 0.001);
【解决办法】:
往SDE中导入数据需要初始化EngineGeoDB许可,初始化Engine许可的话就报这个错,改为EngineGeoDB后该问题得以解决。
【解决办法】:
往SDE中导入数据需要初始化EngineGeoDB许可,初始化Engine许可的话就报这个错,改为EngineGeoDB后该问题得以解决。
试试IMarkerNorthArrow
试试IMarkerNorthArrow
Runtime更侧重于轻量级程序开发,确实跟web gis这块联系更紧,Runtime中使用的是mpk,geodatabase、tpk、mmpk等等,Identify、空间查询、缓冲区分析等常用功能是具备的,但复杂的编辑功能、数据导入导出功能目前比较弱。
Runtime更侧重于轻量级程序开发,确实跟web gis这块联系更紧,Runtime中使用的是mpk,geodatabase、tpk、mmpk等等,Identify、空间查询、缓冲区分析等常用功能是具备的,但复杂的编辑功能、数据导入导出功能目前比较弱。

原始线要素类为地理坐标系,如何获取以米为单位的距离?

回复

鹿果一夏 回复了问题 • 2 人关注 • 2 个回复 • 3937 次浏览 • 2024-02-22 17:17 • 来自相关话题

要素类坐标系为CGCS2000地理坐标系,在ArcMap中加载该要素类,用Measure工具选择Geodesic,Distance单位选中Meters,进行测量即可获取以米为单位的长度。Engine中如何获取该以米为单位的长度?

获取面状几何的IArea.LabelPoint()报错

回复

ArcGIS Enginebaci 回复了问题 • 2 人关注 • 1 个回复 • 414 次浏览 • 2023-08-21 09:31 • 来自相关话题

经分析,可能是由于面中存在非常近的两个节点,小于容差,错误代码如下:
平板电脑墨迹错误代码。多次调用RtpEnabled(异常来自HRESULT:0x80040239)
不调用GP工具修复几何,ArcGIS Engine是否有办法解决该问题。测试了Simplify方法无法解决。

程序符号中的IGeometry与要素的IGeometry的关系

回复

ArcGIS Enginejiushidt 回复了问题 • 2 人关注 • 1 个回复 • 668 次浏览 • 2023-02-21 10:32 • 来自相关话题

在定义程序型符号时 要重写IGeometricEffect接口中的Reset方法
 void IGeometricEffect.Reset(IGeometry Geometry)
        {
            m_pGeom = Geometry;
            m_bDone = false;
        }
跟踪发现 传入的Geometry并不是要素几何的地理坐标(

Arcengine开发,设定空间参考的界面

回复

ArcGIS Enginebaci 回复了问题 • 3 人关注 • 2 个回复 • 3129 次浏览 • 2023-02-01 17:21 • 来自相关话题

Arcengine开发的时候,有没有arccatalog里边那样,设置空间参考的控件呢?
如果没有的话,自己开发,像下边这样的投影类型枚举和地理坐标系枚举,在哪能够获取呢?
看了下esriSRProjCSType和esriSRGeoCSType的值,跟里边的也对应不上,有什么方法获取吗?









 

如何获取CAD注记的中心点?

回复

ArcGIS Enginebaci 回复了问题 • 2 人关注 • 2 个回复 • 709 次浏览 • 2023-02-01 14:29 • 来自相关话题

如下图所示的CAD注记,对齐方式为左对齐,在ArcMap里把CAD注记转点或者使用IFeature.Extent获取到的都是左下角的点,怎么获取到CAD注记的中心点呢。

如何监听ArcMap属性表选择事件

回复

ArcGIS Enginebaci 回复了问题 • 2 人关注 • 1 个回复 • 690 次浏览 • 2022-11-24 09:42 • 来自相关话题

ArcMap中打开的属性表,如何在Add-In程序中监听属性表选择变化事件

ArcEngine 导出图片内存泄露问题

回复

ArcGIS Enginethm 回复了问题 • 7 人关注 • 6 个回复 • 3443 次浏览 • 2022-10-17 18:12 • 来自相关话题

private Image ExportMap(IEnvelope pEnvelope, int width, int height)
{
IExport export = GetMapExport(TileParameter2.StorageInfo.Format.ToString().ToLower(), _backColor, (short)TileParameter2.StorageI

用ae写入gdb的线图层,1秒500条算不算慢?是否有其他更快的写入方案?

回复

ArcGIS Enginecannel 发起了问题 • 1 人关注 • 0 个回复 • 1144 次浏览 • 2021-07-12 12:40 • 来自相关话题

用ae写入gdb的线图层,线几何很简单,属性字段较多有20多个,目前速度1s大概500条,希望能更快些
其他方案可以接受换数据库类型(例如换sde),也可以换接口类型(例如不用ae)

WPF下能使用ArcGIS Engine进行二次开发吗

回复

ArcGIS Enginejiushidt 回复了问题 • 2 人关注 • 1 个回复 • 1424 次浏览 • 2021-04-06 11:52 • 来自相关话题

请问 WPF下能使用ArcGIS Engine进行二次开发吗?之前都是在winForm下进行开发的,不知道WPF下能进行开发

java执行IInterpolationOp

回复

ArcGIS Engine桨声灯影 回复了问题 • 3 人关注 • 2 个回复 • 2455 次浏览 • 2020-11-04 19:52 • 来自相关话题

使用java基于arcengine 运行idw内插 使用IInterpolationOp接口 设置了输出目录
pRasterAnalysisEnvironment.setOutWorkspaceByRef(pWorkspace);
为什么执行产生的临时文件不在设置的目录下 会跑到程序根目录?
另外如何获取或者删除运行过程中的临时文件?

Project工具报错 000365 : 无效的地理(坐标)变换。

回复

ArcGIS Desktopxpauly 回复了问题 • 6 人关注 • 5 个回复 • 13738 次浏览 • 2020-08-07 15:13 • 来自相关话题

 在Arcgis10.4中使用Project工具




报错 000365 : 无效的地理(坐标)变换。
同样的数据在Arcgis10.1中没有问题。

关于ArcGIS Engine中ITopologicalOperator.Simplify()方法问题?

回复

ArcGIS Enginexiaosi9524 回复了问题 • 3 人关注 • 2 个回复 • 2043 次浏览 • 2020-07-22 22:14 • 来自相关话题

IGeometry FocusGeometry;
ITopologicalOperator pTopo = FocusGeometry as ITopologicalOperator;
if (!pTopo.IsSimple)
pTopo.Simplify();在使用ITopologicalOperator.Simplify()方法时,有时会使原IGe

ae(ArcEngine) java swing开发入门系列(1):开发环境和代码部署

ArcGIS Enginecannel 发表了文章 • 0 个评论 • 3260 次浏览 • 2019-02-13 11:32 • 来自相关话题

前言:做ae开发大部分人都是用C#版,很少用到java版,本系列文章主要介绍java版ae开发的入门,对于ae接口的高级应用,可以看C#版相关文章

 

开发环境软件:

Intellij IDEA 2018

java jdk 1.8 32位版

arcgis desktop 10.4.1

ArcObject sdk java 10.4.1

 

PS:本文

ae(ArcEngine) java swing开发入门系列(2):ae的类型转换和Proxy类说明

ArcGIS Enginecannel 发表了文章 • 0 个评论 • 1366 次浏览 • 2019-02-10 15:29 • 来自相关话题

做过C#版ae的都知道,操作同一个“对象”,用他的不同功能要转换到相应的接口,但java版有时不能直接做类型转换

例如下图在C#是可以的

 






但在java不行,这样转会报错,看IFeatureClass的定义,可以看到根本没继承IDataset

 






在java的转换方法是利用对应的Proxy类

 






PS:ja

Arcgis Engine(ae)接口详解:全集目录

ArcGIS Enginecannel 发表了文章 • 4 个评论 • 4270 次浏览 • 2017-11-29 10:48 • 来自相关话题

Arcgis Engine(ae)接口详解(1):featureClass
 
Arcgis Engine(ae)接口详解(2):featureClass查询
 
Arcgis Engine(ae)接口详解(3):featureClass的feature编辑和删除
 
Arcgis Engine(ae)接口详解(4):featureClass的feature插入
 
Arcgis Engine(a

Arcgis Engine(ae)接口详解(8):临时元素(element)

ArcGIS Enginecannel 发表了文章 • 0 个评论 • 2677 次浏览 • 2017-11-29 10:46 • 来自相关话题

IMap map = null;
IActiveView activeView =null;

//IGraphicsContainer用于操作临时元素,可以通过map获取
IGraphicsContainer gc = map as IGraphicsContainer

ArcGIS Engine 10.5下构建Java程序—轻松入门

ArcGIS Engine朱新颖 发表了文章 • 1 个评论 • 3448 次浏览 • 2017-11-17 00:00 • 来自相关话题

虽然接触Engine Java的时间比较长,也接触过用户的一些问题,但是一般都是直接从ArcObjects SDK for Java的示例工程中找一个,然后测试用户代码,并没有自己动手搭建过Engine Java工程,尤其是带控件的,今天正好有用户问起,就动手搭建工程测试一下。现把详细的流程写下来,希望对刚刚开始进行Engine Java开发的用户有所帮助。
一、 环境的准备
1,Engine J

Linux 下如何运行Engine Java 程序

ArcGIS Engine朱新颖 发表了文章 • 0 个评论 • 2161 次浏览 • 2017-11-08 00:00 • 来自相关话题

上篇文章讲解了Linux下如何安装ArcGIS Engine软件并授权,这篇文章主要介绍下Linux下如何运行Engine Java程序,主要是环境的搭建。
本文以Redhat 6.5操作系统,ArcGIS Engine 10.2以及运行基于Engine Java开发的.jar为例,进行环境的搭建。首先我们需要安装Java JDK,这里使用Java 6 Update 20(32bit)环境。
一、

Arcgis Engine(ae)接口详解(7):地图(map)操作

ArcGIS Enginecannel 发表了文章 • 1 个评论 • 2751 次浏览 • 2017-10-11 14:05 • 来自相关话题

IMap map = hookHelper.FocusMap;
//跟map同一层次的activeView对象,他们都是“地图”的对象,map管理地图内容,activeView管理显示内容
IActiveView activeView = map as IActiveView;

//获取当前地图显示范

Arcgis Engine(ae)接口详解(6):workspace操作

ArcGIS Enginecannel 发表了文章 • 2 个评论 • 3441 次浏览 • 2017-10-08 20:57 • 来自相关话题

//此处用的workspace来源与用户选择
IWorkspace workspace = null;

//workspace一般等同于数据库

//工作空间类型,也可理解为数据库类型
//esriFileSystemWorkspace:

Linux上安装ArcGIS Engine 10.4详解

ArcGIS Engine朱新颖 发表了文章 • 0 个评论 • 3194 次浏览 • 2017-09-29 00:00 • 来自相关话题

ArcGIS Engine的优势之一就是其跨平台性,既可以在Windows操作系统上使用,也可以在Linux操作系统上使用。但由于绝大部分用户都是在Windows上使用的,因此,对于Linux上如何安装ArcGIS Engine以及如何运行Engine应用程序并没有研究过。最近正好有用户问到Linux下ArcGIS Engine的安装问题,于是便动手搭建了Linux环境,进行了安装测试,过程有些曲

Arcgis Engine(ae)接口详解(5):IGeometry几何高级操作

ArcGIS Enginecannel 发表了文章 • 1 个评论 • 3157 次浏览 • 2017-09-26 14:03 • 来自相关话题

IPoint point = new PointClass();
point.PutCoords(100, 200);

//ITopologicalOperator接口用于几何对象的几何操作
ITopologicalOperator topo = point as ITopologicalOperat

ArcGIS Engine中调用地理处理工具(gp工具)的方法与注意事项

ArcGIS Engine刘峥 发表了文章 • 0 个评论 • 3606 次浏览 • 2017-07-05 00:00 • 来自相关话题

(以10.3版本下使用C#调用系统工具为例)
1. 在程序中调用gp是否需要安装Desktop软件?
不用安装Desktop软件,安装ArcGIS Engine运行时以后就可以调用gp工具。
2. 如何查看gp工具的许可级别?
可以直接在Desktop的帮助文档中定位到该工具的帮助页面,或者在Desktop软件中开启gp工具的执行页面,点击右下角的“tool help”按钮,也会弹出该工具的帮助页

【ArcGIS 10.5 产品白皮书】第四章 ArcGIS开发包---ArcGIS Engine

ArcGIS EngineArcGIS极客说 发表了文章 • 1 个评论 • 5273 次浏览 • 2017-04-14 00:00 • 来自相关话题

在许多应用中,用户需要通过定制应用或者在现有应用中增添GIS逻辑来实现对GIS的需求,而这些应用程序常常是运行在Windows和Linux上,ArcGIS Engine则被用来建立这样一些应用程序。ArcGIS Engine是ArcObjects组件跨平台应用的核心集合,它提供多种开发的接口,可以适应.NET,Java和C++等开发环境。开发者可以使用这些组件来开发和GIS相关的地图应用,应用程序