在ArcGIS Server9.2的ADF中没有添加图片标注的功能,而且没有添加call out 标注方式的实现.
下面介绍一种实现思路
1.在服务器端使用一个AJAXRenderer 来负责向客户端输出坐标数据
public class MapHotPointRender implements AJAXRenderer {
//具体实现略,需要注意的是在输出数据时最好能比较一下点坐标与地图的范围,将超出范围的点删除,不返回至客户端.而且需要返回的热点信息需要添加至用户的session.
}
2.在客户端添加AJAXRenderer 的handler并处理服务器端返回的数据
EsriControls.addPostBackTagHandler("MapHotPointInfos", mapHotPointInfosHandler);//热点信息客户端响应函数
function mapHotPointInfosHandler(xml)
{
//处理服务器返回的坐标数据,并在该处理函数中向地图上添加图片
//
var pointdiv = document.createElement("div");
pointdiv.style.position="absolute";
pointdiv.style.overflow="visible";
pointdiv.style.zIndex=this.zIndex;//设置小图片的zIndex,需要为父div层的zIndex的最大值
pointdiv.id="hotptDiv_"+x+"_"+y;
pointdiv.innerHTML="";//这里写需要放置的内容,比如从服务器返回的一段数据说明之类的
esriMap.graphics.gc.appendChild(pointdiv);//这句话比较重要,需要把图片增加到地图控件的地图图片或者标记图片所使用的div层中,由esri的脚本来负责图片的拖动操作,使标记小图片移动与地图图片一起移动
}
//功能的具体实现如有需要的请留言或给我消息了.
[img]http://lozpeng.iteye.com/upload/picture/pic/38374/42408a00-ac5d-3806-8bcd-8a8afc351c02.png[/img]
下面介绍一种实现思路
1.在服务器端使用一个AJAXRenderer 来负责向客户端输出坐标数据
public class MapHotPointRender implements AJAXRenderer {
//具体实现略,需要注意的是在输出数据时最好能比较一下点坐标与地图的范围,将超出范围的点删除,不返回至客户端.而且需要返回的热点信息需要添加至用户的session.
}
2.在客户端添加AJAXRenderer 的handler并处理服务器端返回的数据
EsriControls.addPostBackTagHandler("MapHotPointInfos", mapHotPointInfosHandler);//热点信息客户端响应函数
function mapHotPointInfosHandler(xml)
{
//处理服务器返回的坐标数据,并在该处理函数中向地图上添加图片
//
var pointdiv = document.createElement("div");
pointdiv.style.position="absolute";
pointdiv.style.overflow="visible";
pointdiv.style.zIndex=this.zIndex;//设置小图片的zIndex,需要为父div层的zIndex的最大值
pointdiv.id="hotptDiv_"+x+"_"+y;
pointdiv.innerHTML="";//这里写需要放置的内容,比如从服务器返回的一段数据说明之类的
esriMap.graphics.gc.appendChild(pointdiv);//这句话比较重要,需要把图片增加到地图控件的地图图片或者标记图片所使用的div层中,由esri的脚本来负责图片的拖动操作,使标记小图片移动与地图图片一起移动
}
//功能的具体实现如有需要的请留言或给我消息了.
[img]http://lozpeng.iteye.com/upload/picture/pic/38374/42408a00-ac5d-3806-8bcd-8a8afc351c02.png[/img]