由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - 搜索最近距离内的用户?
相关主题
搜索效率问题请教Help about mysql
新手问个spatial data的问题(sql 2008)SQL问题求救!!
long and CLOB.. any differences?有关m# sql server text字段类型一问
Does MS SQL 7 support SQL3 Datatype?Questions about building a database(Maybe ACCESS?)
Is "Dim mydb as database" a user-defined datatypethe most stupid question
how to write this query, need help !!My SQL question: auto increment
questionimage datatype in sql server
question for webdb guru请大侠帮帮忙!SQL server error问题。
相关话题的讨论汇总
话题: dealer话题: 距离话题: 20mile话题: 经纬度话题: 20miles
进入Database版参与讨论
1 (共1页)
c********r
发帖数: 92
1
请问一下,在SQL中,如何高效查询最近距离内的用户。比如买车的网站,给定一个地
址,就告诉你20mile以内的dealer。
一个一个查肯定不行,不知道有啥高效解决办法。
多谢先。
l******t
发帖数: 660
2
这个不是靠sql 写的, 一般是用programming langugge实现算法, 然后存在database
, 当初programming版有算法讨论, 你去收一下。
s**********o
发帖数: 14359
3
不是有SPATIAL DATATYPE了么?

【在 c********r 的大作中提到】
: 请问一下,在SQL中,如何高效查询最近距离内的用户。比如买车的网站,给定一个地
: 址,就告诉你20mile以内的dealer。
: 一个一个查肯定不行,不知道有啥高效解决办法。
: 多谢先。

l******t
发帖数: 660
4
sql server 2012里有map和spatial database 的function. 不知道能不能用上

database

【在 l******t 的大作中提到】
: 这个不是靠sql 写的, 一般是用programming langugge实现算法, 然后存在database
: , 当初programming版有算法讨论, 你去收一下。

c********r
发帖数: 92
5
网上找了个工具:http://sphinxsearch.com/
但不知道是不是最新的。能否告知一下当初在programming 讨论时的关键词吗,一时没
搜到那个thread.
再次感谢。

【在 l******t 的大作中提到】
: sql server 2012里有map和spatial database 的function. 不知道能不能用上
:
: database

l******t
发帖数: 660
6
不记得了, 是好几年前我搞算法的时候看到的, 还有一个办法, google map和bing
map都有现成的web service, 你看看文档, 直接call应该可以。

【在 c********r 的大作中提到】
: 网上找了个工具:http://sphinxsearch.com/
: 但不知道是不是最新的。能否告知一下当初在programming 讨论时的关键词吗,一时没
: 搜到那个thread.
: 再次感谢。

c********r
发帖数: 92
7
多谢啦。

bing

【在 l******t 的大作中提到】
: 不记得了, 是好几年前我搞算法的时候看到的, 还有一个办法, google map和bing
: map都有现成的web service, 你看看文档, 直接call应该可以。

s**********o
发帖数: 14359
8
GIS软件有专门的数据库支持这些东西的,这种距离,网络是GIS里常见的功能,比如从
一点到另一点距离,最快的,最近的,走高速的
w***a
发帖数: 313
9
8年以前弄过一个。
要有一个地址坐标数据库。我拿到的是邮编以及对应的经纬度数据库。
步骤是,先把你要找的地址转成经纬度,经纬度可以与距离互相换算,换算出20mile对
应的经纬度分别是多少(不用太精确),再select 邮编 where latitude, longitude
< 20mile对应的经纬度, 然后从dealer数据表里,找出邮编是这些选出的邮编的dealer
,然后再计算复查这些dealer到你要找的地址的精确距离,把20mile以外的去除,剩下
的就可以输出了。
我以前做的,是找一个品牌产品的代销店。按上述算法实现很完美。

【在 c********r 的大作中提到】
: 请问一下,在SQL中,如何高效查询最近距离内的用户。比如买车的网站,给定一个地
: 址,就告诉你20mile以内的dealer。
: 一个一个查肯定不行,不知道有啥高效解决办法。
: 多谢先。

s**********o
发帖数: 14359
10
还是要分直径20MILES画圆呢,还是网络路程20MILES
相关主题
how to write this query, need help !!Help about mysql
questionSQL问题求救!!
question for webdb guru有关m# sql server text字段类型一问
进入Database版参与讨论
B*****g
发帖数: 34098
11
我觉得地图显示都是方块

【在 s**********o 的大作中提到】
: 还是要分直径20MILES画圆呢,还是网络路程20MILES
w***a
发帖数: 313
12
看这个图,
1,根据用户输入,选定原点。
2,select 出黄方框中所有的dealer (所有星星),条件是经纬度距离小于20mile.
3,程序计算出所有dealer的具体距离,排除大于20mile的 (绿色的)
4, 输出剩下的(蓝色的)dealer
重点是,经过2的过滤,仅仅需要计算很少的几个dealer距离就可以了。速度很快。

【在 B*****g 的大作中提到】
: 我觉得地图显示都是方块
s**********o
发帖数: 14359
13
但其实人问的是开车20MILES以内的DEALER,光画圆没有实际意义,去的时候还是要开
车的,常见的是岛上的或者半岛上的DEALER,或者我在岛上,还是要看路程多少吧。
w***a
发帖数: 313
14
具体路程是要算的。画圆画框的意义在于,排除了99%以上的dealer(就是那些框外的,
你即使按直线开,也大于20mile的距离的dealer),只要算方框内的几个就可以了。计
算量少了几个数量级。

【在 s**********o 的大作中提到】
: 但其实人问的是开车20MILES以内的DEALER,光画圆没有实际意义,去的时候还是要开
: 车的,常见的是岛上的或者半岛上的DEALER,或者我在岛上,还是要看路程多少吧。

B*****g
发帖数: 34098
15
这个有里

【在 w***a 的大作中提到】
: 具体路程是要算的。画圆画框的意义在于,排除了99%以上的dealer(就是那些框外的,
: 你即使按直线开,也大于20mile的距离的dealer),只要算方框内的几个就可以了。计
: 算量少了几个数量级。

B*****g
发帖数: 34098
16
理论上是这样,实际上呢?

【在 w***a 的大作中提到】
: 看这个图,
: 1,根据用户输入,选定原点。
: 2,select 出黄方框中所有的dealer (所有星星),条件是经纬度距离小于20mile.
: 3,程序计算出所有dealer的具体距离,排除大于20mile的 (绿色的)
: 4, 输出剩下的(蓝色的)dealer
: 重点是,经过2的过滤,仅仅需要计算很少的几个dealer距离就可以了。速度很快。

s**********o
发帖数: 14359
17
方框好做,比圆大,先排除一部分,其实用方框就可以了,多数人不会太在乎,主要还是路
径的20MILES不好算

【在 B*****g 的大作中提到】
: 理论上是这样,实际上呢?
B*****g
发帖数: 34098
18
同理呀,先拿到直径小于20mile的,再算距离,以前给个小网站干过干过。不过我怀疑
不会给这枚精确,不如找几个网站试试?

【在 s**********o 的大作中提到】
: 方框好做,比圆大,先排除一部分,其实用方框就可以了,多数人不会太在乎,主要还是路
: 径的20MILES不好算

w***a
发帖数: 313
19
beijing你看贴不仔细啊,我说的就是我做的实际案例。实际效果非常好,从十几万代
销商里找本地代理,输入地址后,一个点击,零点几秒就出来网页了。

【在 B*****g 的大作中提到】
: 理论上是这样,实际上呢?
B*****g
发帖数: 34098
20
如果用户多了呢?这个计算量能不能减下来?

【在 w***a 的大作中提到】
: beijing你看贴不仔细啊,我说的就是我做的实际案例。实际效果非常好,从十几万代
: 销商里找本地代理,输入地址后,一个点击,零点几秒就出来网页了。

相关主题
Questions about building a database(Maybe ACCESS?)image datatype in sql server
the most stupid question请大侠帮帮忙!SQL server error问题。
My SQL question: auto incrementOracle char AND varchar2 datatype question.
进入Database版参与讨论
s**********o
发帖数: 14359
21
会的,都是实现算好存好的,地图都是矢量的,搞的是点,线和多边形

【在 B*****g 的大作中提到】
: 同理呀,先拿到直径小于20mile的,再算距离,以前给个小网站干过干过。不过我怀疑
: 不会给这枚精确,不如找几个网站试试?

B*****g
发帖数: 34098
22
我说的距离是drive距离,不是直线距离

【在 s**********o 的大作中提到】
: 会的,都是实现算好存好的,地图都是矢量的,搞的是点,线和多边形
B*****g
发帖数: 34098
23
我路上想了一下,应该问题不大,一页就显示几个,又不用全显示

万代

【在 B*****g 的大作中提到】
: 如果用户多了呢?这个计算量能不能减下来?
s**********o
发帖数: 14359
24
只要沿着路走就可以了,路一段一段的线都是算好存好的。

【在 B*****g 的大作中提到】
: 我说的距离是drive距离,不是直线距离
B*A
发帖数: 83
25
我也弄过一个类似的。监控监外执行犯活动范围的。
当时是买的专业APi 从OracIe里CallOut。

longitude
dealer
★ 发自iPhone App: ChineseWeb - 中文网站浏览器

【在 w***a 的大作中提到】
: 8年以前弄过一个。
: 要有一个地址坐标数据库。我拿到的是邮编以及对应的经纬度数据库。
: 步骤是,先把你要找的地址转成经纬度,经纬度可以与距离互相换算,换算出20mile对
: 应的经纬度分别是多少(不用太精确),再select 邮编 where latitude, longitude
: < 20mile对应的经纬度, 然后从dealer数据表里,找出邮编是这些选出的邮编的dealer
: ,然后再计算复查这些dealer到你要找的地址的精确距离,把20mile以外的去除,剩下
: 的就可以输出了。
: 我以前做的,是找一个品牌产品的代销店。按上述算法实现很完美。

1 (共1页)
进入Database版参与讨论
相关主题
请大侠帮帮忙!SQL server error问题。Is "Dim mydb as database" a user-defined datatype
Oracle char AND varchar2 datatype question.how to write this query, need help !!
Oracle Group and Index questionquestion
Access database 求助question for webdb guru
搜索效率问题请教Help about mysql
新手问个spatial data的问题(sql 2008)SQL问题求救!!
long and CLOB.. any differences?有关m# sql server text字段类型一问
Does MS SQL 7 support SQL3 Datatype?Questions about building a database(Maybe ACCESS?)
相关话题的讨论汇总
话题: dealer话题: 距离话题: 20mile话题: 经纬度话题: 20miles