地图文本要素拖拽、选中、修改文本内容实现

0 投票

想在客户端实现,添加地图文本要素,可选中要素,可拖拽、可编辑文本内容的功能,现有代码如下:

 var geometry = new SuperMap.Geometry.Point(105, 35);
var pointFeature = new SuperMap.Feature.Vector(geometry);
var styleTest = {
    label:"supermap",
    fontColor:"#0000ff",
    fontOpacity:"0.5",
    fontFamily:"隶书",
    fontSize:"4em",
    fontWeight:"bold",
    fontStyle:"italic",
    labelSelect:"true",
}
pointFeature.style = styleTest;
this.vectorLayer.addFeatures([pointFeature]);

用地图多拽对象:

this.dragFeature = new SuperMap.Control.DragFeature(that.vectorLayer);

无法选中;

5月 30, 2018 分类:  319次浏览 | 用户: cmccmz (6 分)
重新分类 5月 31, 2018 用户:张永利

1个回答

0 投票
1.如果需要拖拽,拖拽时需要开启 dragFeature.activate(); 方法,当拖拽结束使用dragFeature.deactivate();

2.而选中要素,获取其定义的属性,则需要参考SelectFeature方法,根据onSelect返回的feature得到当前style内容在进行修改,修改完成后使用 vectorLayer.redraw(); 进行重绘 。

可以参考范例中的dragFeature和vectorLayerRegionName例子综合一下就行.
5月 31, 2018 用户: 张永利 牛刀小试 (160 分)
你好,要素的拖拽我知道,我现在是要拖拽文本要素,创建一个文本上去,要是没有外边框那些,比如在一个点上,那个文本实际是选不中的,不知道有没有好的方式。
文本内容绑定的点像素大小,拖拽也是需要点击到点上才行(文字不行)。

如果点越小越不容易选择上和你说的所谓边框内容。目前没有其他较好的办法,带个背景框吧。
...