My点评网 - 中国IT产业点评门户 | 将IT产业透明化! | 加入收藏 
MY(我)点评网
欢迎访客访问
[ 登录 | 注册:建论坛/写日志/说评论 ]
会员控制台 | 群组 | (BLOG)资讯 | 论坛
 
大众点评网
导行:
IDC 广告联盟 域名 建站CMS 网络游戏 投资网站 潜质域名 IT企业 电子商务 SEO/Windows7 Script 系统 程序 电脑 交流报 安全 论坛 游戏

以经纬度方式 随机点选任何一点 求出圆半径500公尺的 资料库涵盖点位资料

网络安全详细资料....
首页> 群组> IDC商群组> 网络安全论坛
返回>网络安全论坛 2010-2-11 22:03:44 来自:bigzzz 快速回复 添加新话题
主题内容: 假设 自由广场的中正纪念堂 升旗台为圆中心点

121.51954 25.03584

想以此座标 对资料库中所有点位 求得 圆中心点 半径500公尺内的所有点位

目前只有方框的求法 想请问 圆的求法...

请有概念的各位 帮帮忙

DB栏位 只有 ID NAME X Y 四个栏位...
 回应:2010-2-11 | 用户:zxfxx0352 | 你能评论 IP:113.94.*.* | 1楼
  麦穗 有 x, y 轴,再加垂直点与原点,就可以画一个直角三角形。
又 x,y 座标都有了,所以 们也可以知道他的高跟底长度。(X^2+Y^2=Z^2)
利用高跟底,就可以算出直角三角形斜边的长度
斜边长度如果小于等于圆半径,就是在圆内,反之则否。


麦穗 举例来说,
当(x,y) = (3,4)
可以依据 3^2 + 4^2 = Z^2 ,推算出斜边长Z为 5
如果半径小于等于 5 ,那么座标就是在圆内,反之则否。

风筝 厉害~小舖果然是一个卧虎藏龙的地方
gart 在平面空间 是这样求

可是 在3维空间里 用有限点位将圆内的POI资料

截取出来 该如何将 如果半径小于等于 5 ,那么座标就是在圆内,反之则否 这句话

实现在MSSQL 的 WERER之中呢?
gart function rad(d)
{
return d * Math.PI / 180.0;
}

function GetDistance( lat1, lng1, lat2, lng2){
hide("warning");
if( ( Math.abs( lat ) > 90 ) ||( Math.abs( lat2 ) > 90 ) ){
document.getElementById("warning").innerHTML = ("纬度错误");
show("warning");
return "无法计算!";
}else{
hide("warning");
}
if( ( Math.abs( lng ) > 180 ) ||( Math.abs( lng2 ) > 180 ) ){

show("warning");
document.getElementById("warning").innerHTML = ("经度错误");
return "无法计算!";
}else{
hide("warning");
}
var radLat = rad(lat1);
var radLat2 = rad(lat2);
var a = radLat - radLat2;
var b = rad(lng1) - rad(lng2);
var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +
Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
s = s *6378.137 ;// EARTH_RADIUS;//private const double EARTH_RADIUS = 6378.137;
s = Math.round(s * 10000) / 10000;
return s;
}

function calDis(){
var lat = document.getElementById("lat1").value * 1;
var lat2 = document.getElementById("lat2").value * 1;
var lng = document.getElementById("lng1").value * 1;
var lng2 = document.getElementById("lng2").value * 1;
var dis = GetDistance(lat1, lng1, lat2, lng2);
document.getElementById( "distance").value = dis;

}

想到这种方法 的圆心座标点 自定 (假设笔数不多状况下)

去跟 DB 每笔POI 作 求两点间距离

小于自定的圆心半径 即为圆内POI...

在写Stored Procedure 中 ...

麦穗 不太懂您的问题点
资料库里只有 x, y 座标,哪来的3维空间?
一般用的经纬度座标,只是 2D 平面的,如果 3D ,还 加上高度座标值才可以。

SQL 里简单做点运算就好





麦穗 再看一下程序部份,终于知道您是 算什么,您是 算球面上的距离对吧?

一般的应用不会求到这么细的 @@
原因是 500m 跟地球面积相较之下,可以说是非常的微小,就算真的算出球面上的距离,
相差也不过是非常微小的差距,几乎可以忽略不计。
500m 跟 500.0001m 觉得差很多吗? (这是 随便乱写的数据)
再来,就算 算,您上面的算法算出来的还是不正确,因为地球是椭圆的,并非是正球体。

通常,需 运用到这么精确的计算的,只有在军方及科学运算上,一般商业都直接当平面来计算即可。
当然,如果您真的有这个特殊需求的话,也是可以这样算,只是这就不是 能力所及,帮不到您了。

gart 其实你是有假设说对了 这种算法是有原因的

而且 还 能跟DB内的十万位数POI作对应

所以 第五页的搂 达成了 圆中心点 跟任一点 的距离求得

提供给有相关需求的人参考  

 最新相关内容 10秒,快速注册会员建论坛/写日志/说评论
·怎么在formviewInsert 后 让Dr
·ItemTemplate 的设定 c#
·dbnull资料显示的问题
·MasterPage
·如何对所有栏位作计算
·Inser 一笔资料变成两笔
·多栏位传递变数的问题
·另开新窗口执行ReportView出现错误&l;
·为什么FormViewSelectedValu
  你的回应... [仅对登录会员开放,请文明参与,注册会员能写日志、说评论、建论坛自己当版主]
  回应一下:以经纬度方式 随机点选任何一点 求出圆半径500公尺的 资料库涵盖点位资料
 
  请勿发广告或垃圾信息,请为提高内容质量做出贡献
  [Ctrl+Enter 快速回复]

返回网络安全论坛


来自>>IDC商群组

简介:这是一个以网络技术交流为中心的论坛,以电脑技术、网络安全等为话题.
论坛生日:2009/4/29建立
主题:以经纬度方式 随机点选任何一点 求出圆半径500公尺的 资料库涵盖点位资料
创始人版主:admin查看>>
更多分类 >返网络安全论坛首页
最新热门推荐帖子....
电脑不能玩全民打棒球 [刘哥]
WINDOWS 7升级 [a316988411]
请问价格有小数点什么意思? [rhkfjhh]
请教!!用ASP.NET 3.5 (C#)配合Access撰写登入系统。 [hongfangkuai]
XPK手里键or魔盘可不可以自动练功? [wang520419]
请问一下!09年好玩的游戏 [yuguizhong]
XP SP3无法安装MSN [nikiyiru]
电脑网络线连接网络的问题 [liuxiangxian]
在vs2005中要除错dll,如何布置 [肃竹]
SQL 使用权限到底是用那个.... [冰激凌]
请教ASP.NET汇出成Excel如何改变资料型态 [mabin0326]
请帮我选一台掌上游戏机 [bdj]
无权限开启文件伺服器文件 [lwj3025]
委派 delegate content 里面的function 但委派目标怎么设? [460]
这样算不算是电脑中毒呢 [im136]
无名缺人气拉]ˊˋ虽然这不是问题 [529546097]
不用音效卡就有声音的线上游戏 [kissbabygirl]
 可用别的方式来取代吗?或是读取字后保留原来的断行与空白 [wy0563]
MSSQL汇入资料表的问题 [2899365]
2个游戏的疑问halo3 战场前线3 [smilepast3]

  关于我们 需要帮助 广告服务 合作伙伴 中国IT产业大众点评门户
CopyRight 2008 © My点评网 www.MyDianPing.com
粤ICP备08105915号
  My点评网简介
用户协议 隐私声明
联系方式 建议/反馈
常见问题
忘记了密码
联系我们的客服人员
联系方式
广告投放
网站地图(SiteMap)
网站合作
投资/融资
友情链接/战略伙伴