我跟踪了这个博客http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/sql-server-2008-proximity-search-with-th,做了所有被引导的事情,我很高兴事情进展顺利,下面提到了我的表定义,下面也提到了我正在执行的查询。
我使用的是CodePointData数据,它可以从https://www.ordnancesurvey.co.uk/opendatadownload/products.html下载
使用TestDb GO /******对象:表dbo.PostCode脚本日期: 08/23/2012 05:32:05 */设置ANSI_NULLS ON GO设置QUOTED_IDENTIFIER ON GO创建表dbo.PostCode 从邮政编码g中选择distinct(左(h.postcode,4)),将邮政编码h连接到g.postcode <> h.postcode和g.postcode =‘IG14LF’和h.postcode <> 'IG1 4LF‘,其中由左向左排序(h.postcode,4)
当我运行上面的查询时,它会给出许多不是这个半径的一部分的邮政编码。我正在用另一个网站http://www.freemaptools.com/find-uk-postcodes-inside-radius.htm来验证我的结果,这个网站是说1英里半径包含邮政编码IG1,IG2,IG3,但是当我运行上面的查询时,我的结果是E12,IG1,IG2,IG3,IG4,IG5,IG6。我无法找出为什么它会给我这么多,或者在距离半径一英里的地方的邮编。
请帮帮忙
发布于 2013-03-23 23:53:18
当经线接近任何一个极时,经线之间的距离就会变为零。你可能假设地球是平的(平面投影),所以赤道(或其他位置)的经度距离在整个地球上是恒定的。地球平面假设会产生误差,导致距离计算在极附近增加过大。
https://stackoverflow.com/questions/12087263
复制相似问题