Arcgis server9.3中坐标转换方法及动态添加层
一。客户端的转换方法
9.3的客户端封装了自己坐标的方法,可以说是方便多了,不用自己去服务端拿来,请看下面的列子
function ToImgXY(Tmapx,Tmapy)地理坐标转到图片的坐标
{
var temppt=new ESRI.ADF.Geometries.Point(Tmapx,Tmapy);
var map = $find(wave_mapid);
var tmpobj=map.toScreenPoint(temppt); //地理坐标转到图片的坐标
return tmpobj;
}
//return pt
function ToMapXY(Timgx,Timgy)图片的坐标转到地理坐标
{
var map = $find(wave_mapid);
var tmpobj=map.toMapPoint(Timgx,Timgy); //返回 ESRI.ADF.Geometries.Point
return tmpobj;
}
1.通过screenPt.offsetX和screenPt.offsetY获取转换好后的屏幕坐标
2.通过tmpobj.get_x()和tmpobj.get_y()获取转换好后的地理坐标
二。服务器端的转换方法
9.3和9.2相比较 ESRI公司吧前段的脚本库也改成基于ASP.NET AJAX 的类库,搞的很是看不懂 ,头都大了!也只能看找资料啃啃,这里推荐一下实用的链接:
园子里的,比较实用(AJAX 教程)
http://www.cnblogs.com/webabcd/archive/2008/02/25/1081194.html
在这里也推荐一个工具Aptana 方便大家看新的类库中方法还有对象
http://www.cnblogs.com/jackielin/archive/2006/11/07/Aptana1.html
下面提一点关于客户端的问题(比较浅
问题一 )------地图上加DIV
情况是这样的,原来的9.2版本中,我们在地图上加上自己的DIV,显示一些信息
原来的方法只要把事件如下 (js脚本)
map.divObject.ondblclick=creatshape //map是客户端地图对象
9.3的实现方法
map._containerDiv.ondblclick=creatshape;//map是客户端地图对象
类似的比如你加自己的DIV到地图上去也是
var map = $find(wave_mapid);
map._containerDiv.appendChild(this.bqshape);