打造地图拼接利器(四)数据交互

打造地图拼接利器(四)数据交互,第1张

这里的数据交互,主要指在地图上可以选择一个范围,这个范围可以调节,同时返回所选范围的经纬度值。

GMapnet提供一个绘制矩形函数,但我们还需要加入一些控制点,用来随意调整区域的大小和位置。内置函数GMapPolygon可以生成一个矩形对象,然后添加到地图上。

新建一个类SelectArea,将地图控件作为构造函数的参数传入。

同时,生成两个层,分别用来放置图形和控制点。这也是我们制作标绘的思路,即通过控制点,生成复杂图形。

在类中设置左上和右下两个关键点P1、P2,绑定鼠标按下、移动和抬起事件。当鼠标按下时,记录第一个点,当鼠标移动时,更新第二个点,当鼠标抬起时,停止更新,同步在polygons层里绘制矩形。

鼠标抬起后,生成控制点。这里需要说明,其实控制点也是一个polygon矩形,只不过比较小,再加上描边效果,看起来像一个控制柄。控制点有3个,p1、p2和中点,分别为drag1、drag2和dragcenter,每个控制点根据中心坐标,算出边距为10的小矩形。

Polygon对象有一个IsMouseOver属性,可以判断是否鼠标点击在上面,但实测不好使,所以写了一个检测函数,用来判断控制点是否选中:

当鼠标按下时,判断选择哪个控制点,并用state标记:

添加一个代理事件,用于在矩形变化时将坐标返回主界面的左侧区域。

最终效果如下图:

程序如下:

a=imread('ajpg');

imshow(a)

[a1 a2 a3]=size(a);

x0=300;

y0=200;

r=100;

for i=1:a1

for j=1:a2

if (i-x0)^2+(j-y0)^2>=r^2

a(i,j,:)=255;

end

end

end

figure

imshow(a)

以上就是关于打造地图拼接利器(四)数据交互全部的内容,包括:打造地图拼接利器(四)数据交互、matlab里截取图像中以某点为中心的矩形区域、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9636606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存