ArcGIS。adf javascript 已知地理坐标X,Y如何转换成屏幕坐标?(小问题值100分!)

来源:百度知道 编辑:UC知道 时间:2024/06/15 21:24:11
//在地图上单击画点

var map = $find('Map1');
map.getGeometry(ESRI.ADF.Graphics.ShapeType.Point, usePoint, null, 'red', '#0000FF', 'pointer', true);

//获取鼠标点击的位置的地图坐标

function usePoint(clickPoint)
{

//地理坐标转到屏幕坐标
var screenPoint=map.toScreenPoint(clickPoint);

//获取屏幕坐标的X和Y分量

var screenX=screenPoint.offsetX;

var screenY=screenPoint.offsetY;

}

//屏幕坐标转到地理坐标

function ToMapXY(screenX,screenY)
{
var map = $find('Map1');

//返回 ESRI.ADF.Geometries.Point 类型的点
var mapPoint=map.toMapPoint(screenX,screenY);

}

以上代码可以看到,通过点击可以得到地理坐标clickPoint,这个地理坐标可以转换成屏幕坐标

ToMapXY可以通过屏幕坐标转化得到地理坐标mapPoint。

现在,我知道地理坐标的X,Y,如何通过它转换成屏幕坐标?
或则有没有什么参数可以直接转换X,Y这种形式的坐标成clickPoint(点击得到的参数)这种类型,好让我通过map.toScreenPoint(clickPoint) 方法得到屏幕坐标?

先50,回答好了加50
没看懂的意思。
我用的

可以的,比如google map通过获取mousedown事件而得到单击时的mouse坐标,然后根据map的坐标可以得到相应的地理位置,这个功能全部封装在了一个对象中进行处理的,如Gmap对象等等.当然Gmap是google map API的内容,但对于个这对象在封装过程中,是不需要一个地理位置向mouse中坐标的一个转化,所以封装的对象中是找不到这个的具体的某个方法去实现你的过程的.

但返回过来可以求行相应的屏幕坐标时,对象是一个一体化的方式,比如你在地图中标志了某个位置,那个这个位置是一个地理位置,当然会随着你的地图的缩放与平移等不断的变化,且位置是相对于屏幕有变化的,这个实现提示我们可以达到你所说的功能的!

问题是我们怎么实现是我们最关心的.

以google map API为例,地理信息与标记信息并不在一个层上,他们有一个求出相对的整个地图的中心的函数,根据缩放级别也可以求出显示地图的大小范围,是从地理位置的某个点(地图的左上角)到别一个地址位置(右下角)来确定的,而这个信息是对象提供的,这样,可以根据比例求出当然你所提供的地理位置所以在地图的上比例位置,当然这个就是转向化像素点是非常容易的,而相求出这个点的具体的屏幕坐标也非常容易了,只需要求出地图左上角的屏幕位置与地址位置相对于左上角的屏幕像素,这个点的屏幕位置也非常容易了!

能看明白不?

可以试一试:layers右键--property——更改单位!