关于自定义标记的问题

来源:百度文库 编辑:神马文学网 时间:2024/04/30 16:34:03
在SuperMap iServer Java中添加自定义注记可以通过mapControl.customLayer.addMarker( )方法来做,代码如下:
function addmarker(){
var point2D = new SuperMap.Point2D(-100,0);   //定义一个点对象,并赋予其X,Y坐标值
var innerHtml = ""; //“标记”点击事件弹出的DIV框
var markerContent = new SuperMap.MarkerContent();  //   markerContent.imageSrc="images/walk8.gif"  //标注内容为图片类型时对应图片的访问路径。
mapControl.customLayer.addMarker("myMarker",point2D.x,point2D.y,10,10,innerHtml,null,20,markerContent);
}
mapControl是基础核心控件,主要用于显示地图,并可以对地图进行一些基本的操作,mapDiv是mapControl的一个属性,地图是由多个图层叠加而成并被装载在mapDiv容器;
customLayer是mapControl的一个字段,称为“客户端自定义图层”,该层位于地图窗口的最上层,背景透明,在该层主要显示用户自定义的注记、线、面等要素。我们通过mapControl.customLayer.方法(或属性)来进行操作自定义图层,比如:增删点,线或面对象等其它的操作(看帮助文档);
addMarker是customLayer的一个方法,实现添加自定义注记。无论地图中是否已经存在与该注记ID相同的对象,都将添加自定义注记。通过mapControl.customLayer.addMarker(参数)语句来调用实现。
下面我们来分析下这个方法:
使用mapControl.customLayer.addMarker(参数)方法关键是参数的实例化;以下是它的参数列表:
public function addMarker(id : String, //这里是自己定义的名称,写你想写,一般写与操作相关的名称,利于以后解读;x : Number, //自定义标记要添加在地图上某点的X坐标(是地理坐标,非屏幕坐标),是平面坐标值或者经纬度坐标值取决于你地图使用的参考坐标系。y : Number, //Y坐标值;offsetX : Number, //相对于上面标记添加的点的x方向偏移量,以像素(px)为单位。一般设置,为了避免弹出来的内容遮挡了注记。offsetY : Number, //y方向偏移量。innerHtml : String, //添加完成后注记呈现时的HTML。即是添加好后的标记响应事件呈现的内容。className : String, //添加完成后注记呈现时的样式单CSS的ID。即innerHtml的CSS样式。zIndex : Number, //自定义注记的Index值。比如zIndex =100在zIndex=90的上面。用来控制注记重叠时的可见性。content :MarkerContent, //自定义注记的内容对象。 groupID : String //多个自定义标记可以属于同一组。这里是组号的名称。

说明:比较难理解和区分的是innerHtml,MarkerContent.innerHTML 和MarkerContent.imageSrc其实它们三个是有优先级的:MarkerContent.innerHTML 最高,其次是MarkerContent.imageSrc,最后innerHtml。我们还会发现当设了MarkerContent属性后,innerHtml将自动转换为注记事件响应后的呈现内容。
如果MarkerContent.innerHTML和MarkerContent.imageSrc都设置了函数只能读取其一,即只获取MarkerContent.innerHTML
以下的附件是添加注记函数参数设定所对应的呈现结果,希望对你的理解有帮助:见附件
下载信息  [文件大小:  下载次数:]
点击浏览该文件:添加自定义注记例子.rar