0

第一次在这里海报。我一直在寻找特定于此的答案,但我没有运气。

我正在用 VB.NET 编写一个工具,用于记录在 ArcMap 的地图界面上任意位置绘制的矩形的边界坐标。除了“mouseup”释放坐标之外,我还需要记录“mousedown”点击坐标。

我在 mapinfo 中使用 mapbasic 做了同样的事情,这是最简单的事情:

' xy where user clicked 
x1 = CommandInfo(CMD_INFO_X)
y1 = CommandInfo(CMD_INFO_y)

' xy where user released
x2 = CommandInfo(CMD_INFO_X2)
y2 = CommandInfo(CMD_INFO_y2)

' check and apply correct ordering of max/min x/y values
if x1 > x2 then
    maxX = x1
    minX = x2
else
    maxX = x2
    minX = x1
end if

if y1 > y2 then
    maxY = y1
    minY = y2
else
    minY = y2
    maxY = y1
end if

现在不幸的是,我似乎不能简单地在 VB.NET 中做到这一点。我得到的印象是我需要创建一堆子/类并使用事件才能正确执行,但我不知道从哪里开始。谁能帮我?请记住,我需要能够在地图界面上的任何地方执行此操作(即不在表单/图片框等内)。我正在使用视觉工作室 2012。

谢谢

-L

4

1 回答 1

1

如果您使用 arcObjects,请尝试使用 IRubberBand 接口中的 RubberRectagularPolygon 类:

http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#//001w000002q5000000

它有一个 RubberRectangular CoClass,它有一个跟踪鼠标指针的函数,称为“TrackNew”并产生一个 IGeometry

于 2014-03-03T16:48:26.883 回答