由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
StartUp版 - google map api的问题
相关主题
请问要是h1b身份做兼职的话 (转载)常有一些idea,怎么拿来卖钱?
请问进口机器问题?深圳到美国的空运是什么价
关于newegg如何为公司开设信用卡收费服务
哪里可以找到免费帮助翻译文章的翻译爱好者?[请教] 有关在美国做进出口贸易
投资决策系统---follow up海运还是空运?
最近看到一个网站,想法不错看版上讨论的在香港避税
哪里有关于e-commernce的咨询服务?关于从国内进口
[合集] 最近看到一个网站,想法不错回razr:关于美国sales 及export的基本流程
相关话题的讨论汇总
话题: float话题: miles话题: degtorad话题: api话题: 数据库
进入StartUp版参与讨论
1 (共1页)
s********e
发帖数: 893
1
有没有人用过google map api来计算两个地址之间的距离。我现在在做的一个东西是输
入一个大学的名称,然后把这个大学地址周围10个mile的公寓都返回。公寓和大学的地
址都存在了一个数据库里了可以调用。问题是不知道google map api的速度如何?会不
会输入一个地址search后好久才能返回?当然这肯定也与访问公寓地址的数据库的速度
有关。我现在想做的是有没有必要把每所大学周围10mile的所有公寓地址都在线后计算
好存到数据库里,当用户实时在线输入这个大学地址时,并没有直接实时去计算距离,
而实际上是去访问已经计算好的那个数据库了。不知道有没有这个必要。有用过的请指
教。多谢了先。
s*********e
发帖数: 4475
2
显然先算好速度快得多。

【在 s********e 的大作中提到】
: 有没有人用过google map api来计算两个地址之间的距离。我现在在做的一个东西是输
: 入一个大学的名称,然后把这个大学地址周围10个mile的公寓都返回。公寓和大学的地
: 址都存在了一个数据库里了可以调用。问题是不知道google map api的速度如何?会不
: 会输入一个地址search后好久才能返回?当然这肯定也与访问公寓地址的数据库的速度
: 有关。我现在想做的是有没有必要把每所大学周围10mile的所有公寓地址都在线后计算
: 好存到数据库里,当用户实时在线输入这个大学地址时,并没有直接实时去计算距离,
: 而实际上是去访问已经计算好的那个数据库了。不知道有没有这个必要。有用过的请指
: 教。多谢了先。

h*****s
发帖数: 114
3
实时查google map API有局限:速度问题,访问次数限制问题
基于location搜索现在是很普遍的了,一般做法是:
step 1,根据地址用google map api反查出经纬度,然后保存到自己数据库或者其他数
据源
step 2, 按照不用距离,通过经纬度之间数学运算就可以找到满足条件的地址了,这时
候已经脱离google map api了
如果你用SQL Server,下面一个Function可以使用,其他DB的话,自己转化
CREATE FUNCTION [dbo].[GetDistanceBetweenTwoPoint](
@lat1 FLOAT,
@long1 FLOAT,
@lat2 FLOAT,
@long2 FLOAT)
RETURNS FLOAT
AS
BEGIN
DECLARE @DegToRad AS FLOAT
DECLARE @Ans AS FLOAT
DECLARE @Miles AS FLOAT
SET @DegToRad = 57.29577951
SET @Ans = 0
SET @Miles = 0
IF @lat1 IS NULL
OR @lat1 = 0
OR @long1 IS NULL
OR @long1 = 0
OR @lat2 IS NULL
OR @lat2 = 0
OR @long2 IS NULL
OR @long2 = 0
BEGIN
RETURN ( @Miles )
END
SET @Ans = Sin(@lat1 / @DegToRad) * Sin(@lat2 / @DegToRad) +
Cos(@lat1 / @DegToRad) * Cos(@lat2 / @DegToRad) *
Cos(Abs(@long2 - @long1) / @DegToRad)
SET @Miles = 3959 * Atan(Sqrt(1 - Square(@Ans)) / @Ans)
SET @Miles = round(@Miles,2)
RETURN ( @Miles )
END
GO
b********2
发帖数: 855
4
楼上的正解,赞一个。

【在 h*****s 的大作中提到】
: 实时查google map API有局限:速度问题,访问次数限制问题
: 基于location搜索现在是很普遍的了,一般做法是:
: step 1,根据地址用google map api反查出经纬度,然后保存到自己数据库或者其他数
: 据源
: step 2, 按照不用距离,通过经纬度之间数学运算就可以找到满足条件的地址了,这时
: 候已经脱离google map api了
: 如果你用SQL Server,下面一个Function可以使用,其他DB的话,自己转化
: CREATE FUNCTION [dbo].[GetDistanceBetweenTwoPoint](
: @lat1 FLOAT,
: @long1 FLOAT,

s********e
发帖数: 893
5
多谢hivegas 详细答复。准备就按照你说的方法做了。
B*D
发帖数: 5016
6
好像有的zip数据库就带有经度纬度,可以根据距离把某个半径内的zipcode
都列出来,然后再用结果去filter 你的旅馆啥的地址数据库,结果应该就是你想要的
了?
我hijack楼主这个帖子一下
关于计算driving distance(非 air mile)
我找到这个似乎很不错
http://www.falconsolution.com/driving-distance-calculator/
是基于zip数据库的,我问他们是怎么计算driving distance的
对方是这样回答的
Our calculator are not based on Google API services. You will get a database
(MySQL or MS access) with distances between US zip codes. On this database w
e saved distances like a graph and not like records (from_zipcode,to_zipcode
,distance). For this reason you have to use our php/asp scripts to read data
base saved graph. You cannot run simple sql select query.
我觉得这个数据库不依赖外部,而且结果基本准确,速度好像不错
就是不太理解啥叫作save distance like a graph

【在 h*****s 的大作中提到】
: 实时查google map API有局限:速度问题,访问次数限制问题
: 基于location搜索现在是很普遍的了,一般做法是:
: step 1,根据地址用google map api反查出经纬度,然后保存到自己数据库或者其他数
: 据源
: step 2, 按照不用距离,通过经纬度之间数学运算就可以找到满足条件的地址了,这时
: 候已经脱离google map api了
: 如果你用SQL Server,下面一个Function可以使用,其他DB的话,自己转化
: CREATE FUNCTION [dbo].[GetDistanceBetweenTwoPoint](
: @lat1 FLOAT,
: @long1 FLOAT,

s********e
发帖数: 893
7
多谢BJD补充。
我来试着解释一下啥叫save distance like a graph。Graph是离散数学里的一个概念
,学计算机的应该都多少接触过图论。比方说有5个城市,有的城市是直接相连的,有
的不是。那数据存放时,可以5个城市(结点)存一个array里。每个城市和它邻接的城
市和距离也存在一个array里。比如5个城市V=(A,B,C,D,E). 距离存放在E={(A,B,150),
(A,D,200), (D,E,100)...}. 现在你想计算从A到E,有可能有多种path,有多种
算法来计算哪个最短。那个著名的Travelling salesman problem就是解决这个问题的
。常见的有基因算法,模拟熄火等,还有路由器里用的Dijkstra's algorithm。你说的
这个人估计就是用的这个原理。也就是他说的不是随便run 一个sql query就能解决的
,因为数据不是按照关系型数据库的方式来存放的。
B*D
发帖数: 5016
8
恩,那么这样的数据库
在10-15用户并发访问的情况下,对服务器要求高么?
或者说并发性如何?

),

【在 s********e 的大作中提到】
: 多谢BJD补充。
: 我来试着解释一下啥叫save distance like a graph。Graph是离散数学里的一个概念
: ,学计算机的应该都多少接触过图论。比方说有5个城市,有的城市是直接相连的,有
: 的不是。那数据存放时,可以5个城市(结点)存一个array里。每个城市和它邻接的城
: 市和距离也存在一个array里。比如5个城市V=(A,B,C,D,E). 距离存放在E={(A,B,150),
: (A,D,200), (D,E,100)...}. 现在你想计算从A到E,有可能有多种path,有多种
: 算法来计算哪个最短。那个著名的Travelling salesman problem就是解决这个问题的
: 。常见的有基因算法,模拟熄火等,还有路由器里用的Dijkstra's algorithm。你说的
: 这个人估计就是用的这个原理。也就是他说的不是随便run 一个sql query就能解决的
: ,因为数据不是按照关系型数据库的方式来存放的。

t****o
发帖数: 44
9
"save distance like a graph"
根据对他网站的观察我有几点猜测:
1. 地图可以理解成一个 graph, 关于怎么表示这张图, 你可以查下 directed
acyclic graph
2. 有一种表示方式是用tree structure来表示, 然后在数据库里存每一段距离
3. 你可以参考他网站上的"mileage chart"来猜一下他可能的存储方式.
你询价了吗? 能不能悄悄透露一下他们的价格, 多谢了.
B*D
发帖数: 5016
10
他网站说买这个数据库和对应API
好像才149usd?

【在 t****o 的大作中提到】
: "save distance like a graph"
: 根据对他网站的观察我有几点猜测:
: 1. 地图可以理解成一个 graph, 关于怎么表示这张图, 你可以查下 directed
: acyclic graph
: 2. 有一种表示方式是用tree structure来表示, 然后在数据库里存每一段距离
: 3. 你可以参考他网站上的"mileage chart"来猜一下他可能的存储方式.
: 你询价了吗? 能不能悄悄透露一下他们的价格, 多谢了.
:

t****o
发帖数: 44
11
谢谢分享. 你要是不差钱的话就买一个看看呗. 要是觉得上当了别骂我啊.
下面是我的估计,
1. 他有可能给你一个pre-calculated database,
2. 全美约有30K多个zipcode, 交叉乘一下应该有500million条记录. 按说照(from_zip
, to_zip, distance)来存的话, 应该查询最快啊. 现在我也不明白他的"save
distance like a graph"是怎么回事了.
3. 3楼hivegas对楼主是正解, 对你的driving distance就不合适. falcon家的你近中
远距离都测试过了吗? 我觉得他有可能是按genpichong提到的乘一个因子, 只不过这个
因子是个变量.
就想起这么多了.
1 (共1页)
进入StartUp版参与讨论
相关主题
回razr:关于美国sales 及export的基本流程投资决策系统---follow up
BJD请问一下最近看到一个网站,想法不错
大家说说为啥大陆来的老中创业比不上老印哪里有关于e-commernce的咨询服务?
有东部对创立新型B2C电子商务有兴趣的同志吗?[合集] 最近看到一个网站,想法不错
请问要是h1b身份做兼职的话 (转载)常有一些idea,怎么拿来卖钱?
请问进口机器问题?深圳到美国的空运是什么价
关于newegg如何为公司开设信用卡收费服务
哪里可以找到免费帮助翻译文章的翻译爱好者?[请教] 有关在美国做进出口贸易
相关话题的讨论汇总
话题: float话题: miles话题: degtorad话题: api话题: 数据库