当前位置:编程学习 > C#/ASP.NET >>

电子地图:测距问题

测距基本思路
客户端直接计算方式
先取出ZOOM值,和屏幕宽度(显示地图部分),然后  zoom/区宽 = 每一个像素代表的公里数 = MapCeJv

然后设置鼠标
第一次点鼠标时候,存下当前坐标  X1,Y1,并且打开cejv窗口
然后开始移动判断当时的  移动坐标   X2,Y2
epMouseUp指令中添加,再次UP时候,计算跟X1Y1的距离,然后计算   方法如下  [(X2-X1)*N]的平方加上[(Y2-Y1)*N]的平方,然后总的开2次方根 = R1  定义RX=0 定义RX=R1+RX输出现在总公里和,原理同三角形计算边长公式,同时输出算出来的R1(当前距离)和RX(总距离),并且重新吧X2,Y2的值定义给X1,Y1。
在鼠标移动处理时候,必须随时计算出R1,但是不计算RX,
当鼠标2次点击时候,自动关闭测距窗口

要求实现,我点测距窗口时候,在屏幕上任意点鼠标后,开始画线,在画的过程中在一个div里显示距离,实时显示拉动的距离,然后鼠标再次点时,显示这2点距离,画上线,鼠标继续拉,这时实时显示出跟第2点的距离,再次点鼠标时候显示第2段距离,并在div中显示累计距离,鼠标双击执行清楚所有线和距离记录。谁能实现哦啊,在线等  
大概意思就是   我的鼠标点了测距后,在地图上一点,然后开始拉线,在拉线的同时就要显示出距离来,现在做是直接从引擎做处理
但是要直接在客户端实现,不发服务器处理,你看,我上面说的,我能从引擎返回地图的zoom大小,然后按照计算方法,除以你的屏幕宽度,就可以计算出每
一个像素代表的公里数了,对不对   然后你想,我取出一个xy来,屏幕坐标,能做吧,然后再取一个也可以吧,,用三角形计算公式就能算出他们的距离了,是不是
第一次存到变量里,是不是,但是第一次存了后,你一移动鼠标就开始直接计算距离,就是说你鼠标走到哪里,就显示出来这里离开你刚才那个点的距离,要求直接显示出来
随时显示出来,要求随时计算出来,就是鼠标的mousemove,来控制,直接做个div,在里面显示,就是这个东西,咱们的老系统里有,但是没起来呢,
我跟你说,首先,我鼠标一电,点后没什么显示,但是要记忆变量,不是保存不注,就是点了后,随着你的鼠标的移动,计算出来的公里数就开始变化了,就是跟着你的
拉动,公里数字不停的变大或者变小   要求是实时的  这个是纯客户端的软件,用javascript可以实现的,是不是很麻烦,你能实现不????马上计算出公里数,显示出来可以算出,这个我能给你
还要画出线,移动时候画出来,当你鼠标再次点的时候线保留,当你鼠标双击时候全部清除,还要在线上显示公里数字
哪位高手指点下啊? --------------------编程问答-------------------- 在线等啊,做过电子地图的帮帮忙 --------------------编程问答-------------------- 我也期待着答案。。在线等 --------------------编程问答--------------------
引用 2 楼 fsx999 的回复:
我也期待着答案。。在线等
--------------------编程问答-------------------- vml画线  然后鼠标开始记录下坐标 到结束点坐标 进行加减

不同倍率下的 加减算发肯定需要进行一次判定


获取这个2点坐标距离后,就根据不同倍率下的比例尺大小进行换算


就这样实现的. 

VML画线 是在一个层上画.

当你在这个层上双击的时候 就直接把这个层隐藏掉. --------------------编程问答-------------------- vml现在用的人多不多啊? --------------------编程问答-------------------- VML 我感觉很好用撒。
圆啊矩形啊线,面,指路都用它 --------------------编程问答-------------------- 请问楼主这个功能实现了没有啊,我现在就要实现这个,如果你实现了的话,能不能帮帮忙啊
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,