注册 登录
编程论坛 ASP技术论坛

如何计算二维地图距离

hams 发布于 2010-04-22 12:08, 929 次点击
一个二维的坐标,如何计算最近或最远的点?

比如,以下坐标:

222:333
210:245
100:100
200:300
300:423
501:233
101:101

如何搜索离200:200最近的一个或多个点?或计算离200:200在若干个点距离范围内的坐标?
4 回复
#2
gupiao1752010-04-22 14:22
整体设计起来可能代码比较多,这里给你一个计算单一2个坐标间距离的JS以供参考! 把以下代码保存为a.html测试即可!
 <script language="JavaScript">   
//定义二维数组并初始化   
function dis()
{
 var start=document.getElementById("start").value;
 var str1=start.split(",");
 var end=document.getElementById("end").value;
 var str2=end.split(",");
var c1=(str1[0]-str2[0])*(str1[0]-str2[0]);
var c2=(str1[1]-str2[1])*(str1[1]-str2[1]);
var c3=Math.sqrt(c1+c2);
document.getElementById("con").innerText=c3;
//alert(end);
}
 </script>   
开始坐标:<input type="text" id="start">二唯坐标请用逗号割开!<br>
结束坐标:<input type="text" id="end">二唯坐标请用逗号割开!<br>
 <input type="button" onclick="dis();"value="测算距离">
 <div id="con"></div>
#3
hams2010-04-22 17:25
谢谢
我现在也想到了用求直角三角形斜边的方式,只是,不知用在数据库上,有没有简单的查询公式?
#4
zzy_4202010-04-22 20:52
很难
#5
gupiao1752010-04-23 13:04
    求2个坐标的距离本身就是一个数学常用公式!如果是多个点求最近的,也有相对应演变的公式!只要你对几何足够了解,这些公式都不难!关键是如何把它变成现成的代码!
      数据库里没有现成的计算几何数学函数的公式,不过你可以在独立字段上自己编写,注意数据格式即可!
!你可以自己组建几个字段,坐标X,坐标Y,距离这个字段就自己编写函数,根据坐标X,坐标Y自动求出一个值存入距离字段,这样的做法是可行的!这样要比较的时候会更简单些!

1