首页 / 浏览问题 / 云GIS / 问题详情
如何在在鼠标点击点的坐标添加文字并可修改
64EXP 2017年08月04日
如何在在鼠标点击点的坐标添加文字,可以修改文字内容;

另一个问题,如何使用户自己设置修改绘制点、线的样式

1个回答

1. 添加时:注册地图点击事件,类参考:EVENT_TYPES。回调函数的参数是浏览器鼠标点击事件,里面有鼠标相对左上角像素坐标,同时附加了xy属性为相对地图div左上角点像素坐标。这样你就可以添加一个输入文字框,输入完文字,使用getLonLatFromPixel方法将相对地图div左上角像素坐标转为当前地图坐标系对应的坐标,这时再添加点对象设置label样式或GeoText设置文本;
修改时:使用SelectFeature注册Vector图层点击事件,回调方法里得到当前点击要素坐标,使用getPixelFromLonLat转为相对地图div左上角点坐标,添加输入框,使可以修改文本。
2.修改点线样式直接修改点线要素的style属性,然后重绘Vector图层即可。

1,780EXP 2017年08月04日
请问有实例吗?您这样说得我感觉有点复杂。。
没有,请自己实现,其实没有你想象的复杂。
1. 请问注册地图点击事件是怎么完成的?我使用SuperMap.Handler.Click控件只能获取按钮点击点的坐标,如何才能在点击绘制文字按钮后,点击地图才开始获取坐标输入文字?

类参考有写,

EVENT_TYPES

支持应用事件的类型。

{Array(String)} 支持应用事件的类型。为一个特殊的事件注册一个监听对象使用下面的方法

map.events.register(type, obj, listener);

监听对象将会作为事件对象的参考,事件的属性将取决于所发生的事情。


推荐使用map.events.on/un方法,类参考:on
比如:map.events.on({"click":function(e,a){console.log(e,a,this);}});
点击开始绘制时注册事件,取消绘制时取消注册事件(un)就行。

...