你应该开发的是gis吧。查看它的api获取当前屏幕的上下左右四个点坐标,getExtent()类似的方法。这样就取得了地图模块的矩形,你可以轻易的获取地图div的top left 以及width和height。这样通过简单的运算就能算出。。
举个例子,比如说你的地图div width:500px,height:500px,left:100px,top:100px。。你通过地图api得到的当前地图范围四个点(110,20),(110,30),(120,20),(120,30)。。你所要取得点为(113,23)。。该点的left:100+500*(113-110)/(120-110)         top:100+500*(23-20)/(30-20)大概的思路就是这样,语文学的不好不会太表达,希望你能看懂。

解决方案 »

  1.   

    不好意思,有点小问题,top应该是100+500*(30-23)/(30-20)
      

  2.   

    我这里没有地图的api,是直接固定一张图片,然后给出经纬度,要求在这个图片上定位画点。就是html里面有一张图片,然后给出一个经纬度,要求在这张图片上画出一个点
      

  3.   

    说屏幕是不可能的。在浏览器窗口之外,或者是窗口标题条、滚动条上那些“屏幕”位置,你能画吗?
    只要说在图片中定位就好了。对图片和屏幕来说,只有X,Y坐标。
    不管你的图片是个地球仪还是某个地区的图片,你得搞清楚那个经纬度坐标应该对应你这图片上哪一个相对X,Y坐标所在的点。
    可以到百度地图或谷歌地图里面输入经纬度坐标,找到在地图上的那一点,和你的图片进行比对,找出在你图片上对应的位置,然后通过CSS设置一个父DIV容器,在里面放置图片,和一个position=relative的DIV层,LEFT和TOP就设为前面你所找到的X,Y坐标,这个DIV里面放置一个透明的GIF图片(圆点或三角或其它坐标标注图形都可以,网上就能找到),就可以了。
    如果想动态响应任何经纬度坐标(如果你的这个图片中能存在的话),可以进行计算,方法是根据你这个图片四个角对应的实际经纬度坐标,和你要响应显示的经纬度坐标进行缩比计算:
    图片内目标X坐标=取绝对值(目标经度-图片左边对应经度)/取绝对值(图片右边经度-图片左边对应经度)* (图片的宽度)
    因为经度是从子午线向两个相反方向分东经西经的,所以你的坐标要搞清是在东经范围,还是西经范围,任意一面都好说,只有当跨越子午线时需要注意东经30度减西经30度应该是正30减负30等于60度的关系,不要减成0度了。
    纬度也类似,只是以赤道线分南北纬。如下就得到了目标点在图片内的Y坐标。
    图片内目标Y坐标=取绝对值(目标纬度-图片上边对应纬度)/取绝对值(图片下边纬度-图片上边对应纬度)* (图片的高度)。
      

  4.   

    自动响应的,同我前面说的手工查找定位的CSS设置方法一样,只是通过JS计算之后把新的坐标点更新到这个点对应的DIV层CSS的TOP和LEFT属性就可以了。通过引用相同的CLASS,可以设置多个DIV显示多个坐标,只要分别设置不同的TOP,LEFT就行了。