Geoaxes变焦添加ButtonDownFcn之后不工作。

19日视图(30天)
我有一个应用建于AppDesigner geoaxes地图绘制。我需要放大和缩小但我也需要做一些动作,当我点击地图。问题是:
  • 变焦的作品完全当没有buttondownfcn补充道
f = uifigure;
gx = geoaxes ();
geoscatter (gx 10 10)
  • 缩放不工作当buttondownfcn添加。
f = uifigure;
gx = geoaxes (f);
geoscatter (gx 10 10)
gx。ButtonDownFcn =“disp (“hello”)”;
我需要使用这两个功能。我应该做什么?

接受的答案

亚当Danz
亚当Danz 2021年5月20日
编辑:亚当Danz 2021年6月14日
我不知道为什么分配影响缩放按钮功能,但可以通过重置默认固定轴的交互性。
gx = geoaxes;
geoscatter (gx 10 10)
enableDefaultInteractivity (gx)% * <——必须分配ButtonDownFcn之前
gx。ButtonDownFcn =“disp (“hello”)”;
*看到 Jan Studnicka 评论 在下面。
7评论
亚当Danz
亚当Danz 2022年5月16日
>已经有人报告这个错误呢?
是的。
现在我回答的方法为你工作吗?

登录置评。

答案(1)

Jan Studnicka
Jan Studnicka 2021年5月21日
正如前面提到的 在文档 :
“有时候MATLAB®自动禁用内置的交互。例如,他们可能会禁用图表,有特殊的功能,或当你实现特定的回调等 WindowScrollWheelFcn ”。
然而,随着geoaxes您可以很容易地实现 放大/缩小 通过使用WindowScrollWheelFcn uifigure的回调。这是一个例子创建的文档的例子 “如何使用WindowScrollWheelFcn” :
函数scroll_wheel
%显示了如何使用WindowScrollWheelFcn结合geoaxes和
% ButtonDownFcn回调。
f = uifigure (“WindowScrollWheelFcn”@figScroll,“名字”,“滚轮演示”);
gx = geoaxes (f);
geoscatter (gx 10 10)
gx。ButtonDownFcn =“disp (“hello”)”;
标题(gx,“旋转滚轮”)
函数figScroll(~、事件)
如果事件。VerticalScrollCount > 0
gx。ZoomLevel = gx.zoomlevel - 0.1;
elseif事件。VerticalScrollCount < 0
gx。ZoomLevel = gx.ZoomLevel + 0.1;
结束
结束
结束
1评论
亚当Danz
亚当Danz 2021年5月21日
编辑:亚当Danz 2021年5月21日
+ 1好主意,1月注意,这个缩放成轴的中心而不是缩放轴内的光标的位置。
还是我不清楚为什么 ButtonDownFcn 可以防止变焦交互以来,回调函数不应对滚轮。我也觉得很奇怪,添加 ButtonDownFcn 但调用禁用变焦交互 enableDefaultInteractivity 可以把它在定期的数据——这听起来车给我。最后,我想知道为什么应用 enableDefaultInteractivity 与uifigures不会解决这个问题。
顺便说一句,我也得到相同的迭代警告当放大/缩小使用这种方法(r2021a)
警告:一个值类的“双重”是没有指定下标索引。目前这个操作的结果是索引值本身,但在一个
未来释放,它将是一个错误。
>在matlab.internal.asynchttpsave / AsyncHTTPContentFileWriter / handleThreadIsFinishedEvent
matlab.internal.asynchttpsave.AsyncHTTPContentFileWriter
asyncio /通道/ onPropertyChanged(第471行)
asyncio.Channel > @(来源、数据)obj.onPropertyChanged (data.Name data.Value)(第401行)
显然有一些清理的兆瓦。

登录置评。

下载188bet金宝搏


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!