阅读:3900回复:6
关于经纬度与坐标的计算方法
<P>关于经纬度与坐标的计算方法<BR>如把经纬度(longitude,latitude)(205.395583333332,57.9323888888888)转换据成坐标(205°23'44.1",57°55'56.6")。<BR>经度转换方法是:1,直接读取度:205 </P>
<P> 2,(205.395583333332-205)*60=23.734999999920 得到分:23<BR> 3,(23.734999999920-23)*60=44.099999995200 得到秒:44.1<BR>采用同样的方法可以得到纬度坐标:57°55'56.6"</P> <P>假如我们需要转换的经纬度数据n多,采用以上方法逐一计算,显然是不明智的,我们需要找到一条适合自己的公式和工具去转换。这里我采用</P> <P>sql 查询分析器进行转换,熟悉excell的朋友把上面的原理变成公式,也可以得到同样的结果。<BR>假如我的数据库里的表table有以下数据<BR>ID address longitude latitude <BR>0 add1 205.3955833 57.93238889 <BR>1 add2 205.3911111 57.95194444 <BR>2 add3 205.3791667 57.98916667 <BR>3 add4 205.3713889 57.95611111 </P> <P>在sql 查询分析器里直接调用以下查询语句<BR>select ID,address,longitude,left(longitude,3)as degree,left((longitude-left(longitude,3))*60,2)as minute,left((((longitude-left(longitude,3))*60-left((longitude-left(longitude,3))*60,2))*60),4)as second,latitude,left(latitude,2)as degree,left((latitude-left(latitude,2))*60,2)as minute,left((((latitude-left(latitude,2))*60-left((latitude-left(latitude,2))*60,2))*60),4)as second from table</P> <P>即可得到:<BR>ID address longitude degree minute second latitude degree minute second<BR>0 add1 205.3955833 205 23 44.1 57.93238889 57 55 56.6<BR>1 add1 205.3911111 205 23 28 57.95194444 57 57 7<BR>2 add1 205.3791667 205 22 45 57.98916667 57 59 21<BR>3 add1 205.3713889 205 22 17 57.95611111 57 57 22</P> <P>注意:数据库表名:table ;列名:ID address longitude latitude 需一致调用才行。</P> |
|
|
2楼#
发布于:2006-04-24 10:40
<img src="images/post/smile/dvbbs/em01.gif" />
|
|
3楼#
发布于:2006-04-17 21:27
<img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
|
|
4楼#
发布于:2006-04-16 13:47
<img src="images/post/smile/dvbbs/em05.gif" />这样的帖子应该多发啊·
|
|
5楼#
发布于:2005-10-16 11:56
好文章,经纬度与坐标的计算方法.<BR>
|
|
6楼#
发布于:2005-10-15 10:26
<P>好思想!</P><img src="images/post/smile/dvbbs/em01.gif" />
|
|
|