问题标签 [arcgis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1739 浏览

vba - 如何(以编程方式)使用 VBA 找出当前 ArcMap 文档的路径

我想要一个 Visual Basic for Application Function,它显示当前文档的路径。

例如,如果 ArcMap 正在显示map.mxd,我需要显示它的路径。

我只找到了一些查询显示图层的数据源路径的示例。

0 投票
1 回答
1472 浏览

arcgis - 在 ESRI/ArcSDE 中编写脚本或自动创建要素类

我正在寻找有关如何编写 SQL 脚本以在 ArcSDE 中自动创建版本化要素类的信息我希望能够自动执行该过程并将脚本置于版本控制之下。谁能指出我解释如何做到这一点的资源?

这甚至可能吗?添加要素类时,表和数据之间似乎存在很多相互关系。

PS 它不一定是纯 SQL,但它应该是某种脚本,以便我们可以保存到版本控制并在 ESRI 桌面工具之外运行。

0 投票
1 回答
1920 浏览

arcgis - 在 ESRI ArcGIS 中将要素类序列化为 XML

如何将 IFeatureClass 对象序列化为 XML?

有一些资源可用于在其他 ArcObjects 上使用 IXMLSerializer,但这不适用于 IFeatureClass,因为它没有实现 ISerializable。

0 投票
3 回答
3284 浏览

python - 从栅格中提取形状内的点

我有一个接近一百万点的光栅文件(基本上是二维数组)。我正在尝试从光栅中提取一个圆(以及圆内的所有点)。为此,使用 ArcGIS 非常缓慢。任何人都可以推荐任何既容易学习又功能强大且足够快的图像处理库来完成这样的事情?

谢谢!

0 投票
2 回答
2564 浏览

arcgis - 如何自动沿路线查找 M 值

几年前,Kirk Kuykendall 在 ESRI 论坛http://forums.esri.com/Thread.asp?c=93&f=996&t=88246&mc=4中给出了一个脚本示例,说明如何找到单击该点时沿路线的 shapefile 中的一个点。这非常方便,但是..我有 1500 个点需要 M 值。有没有办法自动化这种类型的事情?我需要点的 M 值来在路线上创建线性事件。

注意:我不是程序员,但有可以帮助我的人。

0 投票
1 回答
498 浏览

gis - 这对 GIS 可行吗?

我只是让自己熟悉 GIS,但我想事先知道以下内容是否适用于当前的 GIS 应用程序/工具...

  1. 我通过地理编码得到地址的要点。容易的部分。
  2. 现在,如果该点位于边界内(可能是城市/县/州),那么我需要获取与边界关联的数据(任何 id/标志)。
  3. 然后基于 id/flag 我应用一些业务逻辑。

我的问题是...

  1. 我如何定义边界?我应该使用什么工具?
  2. 我如何将边界定义存储在数据库中以检查该点是否在其中?这必须在后端完成,而不是在可视地图中完成,因为我们不打算显示/使用地图。
  3. 如何将我的自定义数据(id/flag)与上述边界定义相关联?

希望我对 GIS 的能力有正确的假设。我看到的大多数示例都是围绕人们试图用数据显示地图的,而这正是我想要的。另外请向我推荐一些有关此的工具/书籍。

0 投票
1 回答
680 浏览

c++ - ESRI 地图对象 - 是否可以禁用 MouseWheel 事件处理程序?

我已经在 ESRI 支持论坛上发布了这个,但目前还没有人回来提供解决方案。

背景:我正在维护一个使用 ESRI ArcGIS 组件(版本 9.3.1 SP1)的 C++ 地图显示应用程序。它实例化一个 Map 对象(esriCarto::Map),查询 IActiveView 接口,并调用 Activate 以传入视图窗口客户区(还有一大堆其他属性也通过各种接口设置)。然后在一系列绘图操作的中间使用它来渲染最终的显示图像。

问题: WM_MOUSEWHEEL 事件似乎在 Map 对象(或子对象?)中被拾取,并导致奇怪的行为。应用程序中应该发生的是视图窗口收到此消息,然后调用“缩放”方法来触发适当的重绘。实际发生的是消息通过视图窗口的 PreTranslateMessage,然后显示区域出现故障,然后调用视图窗口的 OnMouseWheel 处理程序来处理缩放。

“故障”是指视图窗口短暂变白,然后重新显示上一个图像。这在与 ArcGIS 9.2 集成的应用程序的早期版本中没有发生,并且在发生这种故障效果时,没有调用应用程序自己的绘图代码。如果通过替代上下文菜单选项调用窗口的缩放功能,也不会发生这种情况。

在阅读了参考信息一段时间后,我怀疑 Map 的子 ScreenDisplay 对象正在响应鼠标滚轮事件并在执行我们不希望它对视图区域执行的操作 - 我还怀疑有一种方法可以告诉它不是,但我似乎找不到它。我确实有一个解决方法,即处理视图窗口的 PreTranslateMessage 中的缩放,并防止消息进一步传播,但这感觉有点像 hack。

那么,任何善良和聪明的人都可以告诉我一种告诉 Map 对象忽略鼠标滚轮事件的方法吗?

0 投票
2 回答
3118 浏览

ms-access - 以编程方式在 ArcMap 中获取 Access 2007 表(扩展名为 .accdb)

我最近从 ArcScripts 中找到了一个关于如何以编程方式在 ArcGIS 中获取 Access 表的脚本,它运行良好。但这是针对 Access 2003(.mdb 扩展名)及更早版本的。代码贴在下面,我想知道如何修改它以使用 Access 2007(.accdb 扩展名)和更高版本的数据库。

这是 ArcScript 的链接:http: //arcscripts.esri.com/Data/AS14882.bas

PS 我知道这段代码是用 VBA 编写的,我不知道修改后的版本是用 VB.NET 还是其他任何语言。

谢谢,阿德里安

0 投票
1 回答
262 浏览

vb.net - 如何从 arcobjects 中的字符串创建变量?

希望这是一个简单的问题,有一个简单的答案。如果我有一个列表框或具有类似 4 年(如 2006 年到 2009 年)列表的东西,我如何以编程方式制作这些年份的变量,名称如 pTable2006、pTable2007 等(当然是 ITable)。

如果这是不可能的,并且我已经在声明中公开声明了这些表(例如 pTable2006 为 ITable,pTable2007 为 ITable 等),我如何根据用户选择以编程方式分配这些变量?我要问的是,如果用户想选择 2006 年和 2007 年,我该怎么写: pTable & ListBox.Items.Item(0) = [table path string] & ListBox.Items.Item(0) (请忽略“列表框”的语法,我只是想举个例子)

我希望这是有道理的。我不确定问这个问题的最佳方法,但每当我输入 pTable & "string" 之类的东西时,我都会收到错误消息。

谢谢,阿德里安

0 投票
1 回答
72 浏览

geometry - 比较原始和简化的 TIN

我有两个地形的 TIN(三角形不规则网络)。第一个(TIN1)是原始的,假设有 X 个点。另一个(TIN2)被简化(点的数量被一些抽取算法减少了),假设它是从 Y 点构建的,其中 X>Y。现在,我如何在这两个 TIN 之间进行以下比较:

1) TIN2 与 TIN1 有何相似之处?或 TIN2 如何偏离 TIN1?或者我如何比较 TIN2 与 TIN1 的精度?

2) 有哪些工具或方法可以帮助我获得关于 TIN2 相对于 TIN1 准确性的大部分信息?

如果你能指出我的任何论文、书籍、链接……?非常感谢!