我正在使用此公式来计算我的(我的)SQL数据库中条目之间的距离,该数据库具有十进制格式的纬度和经度字段:
6371 * ACOS(SIN(RADIANS( %lat1% )) * SIN(RADIANS( %lat2% )) + COS(RADIANS( %lat1% )) * COS(RADIANS( %lat2% )) * COS(RADIANS( %lon2% ) - RADIANS( %lon1% )))
Run Code Online (Sandbox Code Playgroud)
适当地替换%lat1%和%lat2%它可以在WHERE子句中用于查找另一个条目的某个半径内的条目,在ORDER BY子句中使用它与LIMIT一起将找到最近的x个条目等.
我写这篇文章主要是为了自己,但总是欢迎改进.:)
注意:如下面的Valerion所述,这以千米为单位计算.用适当的替代号码代替6371 以使用米,英里等.
我怎样才能找到最近的街道交叉点我有坐标?
例如,假设我有一条从南到北的街道A,北面是街道X,南边是街道Y.
Google Maps API是否允许查找街道A最近的十字路口(X或Y)的坐标?我无法在任何地方找到它.
PS:我所知道的唯一解决方案是猜测街道A上建筑物的最低数量和最高数量,并在它们之间绘制折线.我不确定这一点.
我应该如何根据GeoPt属性创建一个返回最近实体(来自我当前位置)的GQL查询?我是否应该创建一个"距离"函数来计算一组距离合理的实体?
提前谢谢!
我正在使用谷歌地理编码服务来验证我们系统中输入的城市名称(加上地区和国家/地区)是否存在,以及获取纬度/经度.
但是,我发现它似乎在猜测你是否输错了,即使你犯了错误也会返回一个回复.
例如,对"Beverton,Ontario,Canada"的请求返回Beaverton的纬度/经度,没有迹象表明您提供了错误的城市名称.
我正在使用CSV响应类型,并获得200响应代码.
我可以阻止服务这样做,或者更好的是,找出它是否有?
编辑:澄清...谷歌正在纠正输入(当我希望它只是失败),我需要知道它是否已经这样做了.
我一直未能成功找到一个由城市定义的美国大都会区(旧金山湾区,南湾,伯克希尔,纽约上州等)数据库.
有谁知道这样的事情是否存在?
维基百科有一个"州内地区"列表:
http://en.wikipedia.org/w/index.php?title=List_of_regions_of_the_United_States#Intrastate_regions
除了这将是每个50个州的痛苦,然后拉出该地区的文章,以找出哪个城市所说的区域组成.
来自联邦调查局的MSA和CSA列表没有帮助,因为它基于统计分组而不是通用名称.
非常感谢,提前
- 迈克尔
我有2个相关的导轨型号
class Location < ActiveRecord::Base
has_many :rates
geocoded_by ....
end
class Rate < ActiveRecord::Base
belongs_to :location
end
Run Code Online (Sandbox Code Playgroud)
我正在使用地理编码器宝石 - http://www.rubygeocoder.com
我想找到具有与pair用户相距一定距离的特定属性的所有费率.
在SQL中,我会对费率进行内部联接
SELECT * FROM rates INNER JOIN locations ON rates.location_id=locations.id;
Run Code Online (Sandbox Code Playgroud)
然后,插入where条件以对pair属性进行过滤,然后在结果表上使用Geocoder的near方法(near方法通过在查询中插入where条件来计算距离,使用位置上的纬度和经度属性)到只选择正确距离内的行
我怎么能在rails中做到这一点?我试过了
rates = Rate.joins(:locations)
Run Code Online (Sandbox Code Playgroud)
我明白了
ActiveRecord::ConfigurationError: Association named 'locations' was not found; perhaps you misspelled it?
Run Code Online (Sandbox Code Playgroud)
我想做这个
rates = Rate.joins(:locations).near(my_latitude, my_longitude, distance).where(:rates => {:pair => 'xxxx'})
Run Code Online (Sandbox Code Playgroud)
但我明白了
undefined method `near' for #<ActiveRecord::Relation:0xa075ff8>
Run Code Online (Sandbox Code Playgroud) 有没有人尝试在Firebase中存储和/或搜索地理编码(例如lat/long)?这是内置在MongoDB中的功能,而我正在考虑将Firebase用于后端,我需要知道如何在Firebase中处理这种情况.
谢谢!
我有一个带有Geography类型的SQL表列:
create table dbo.Events
(
Id int identity not null
constraint PK_Events_Id primary key clustered (Id),
Localization geography not null
);
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得半径为40公里的所有活动?这可能吗?
谢谢你,米格尔
我试图找到一种方法来创建iOS的多个多边形地理围栏.我需要在一个城市中绘制多个区域来表示区域,街道等.从我到目前为止所读到的,iOS仅允许来自地理定位设备的圆形区域.
的背景
我有一个问题,其中有许多解决方案可能,但我相信有一个尚未发现的优雅解决方案利用purrr.
示例代码
我有一个如下的大数据框,我在其中包含了一个例子:
library(tibble)
library(ggmap)
library(purrr)
library(dplyr)
# Define Example Data
df <- frame_data(
~Street, ~City, ~State, ~Zip, ~lon, ~lat,
"226 W 46th St", "New York", "New York", 10036, -73.9867, 40.75902,
"5th Ave", "New York", "New York", 10022, NA, NA,
"75 Broadway", "New York", "New York", 10006, -74.01205, 40.70814,
"350 5th Ave", "New York", "New York", 10118, -73.98566, 40.74871,
"20 Sagamore Hill Rd", "Oyster Bay", "New York", 11771, NA, NA,
"45 Rockefeller Plaza", "New York", "New York", 10111, -73.97771, …Run Code Online (Sandbox Code Playgroud) geocoding ×10
google-maps ×3
sql ×2
api ×1
database ×1
firebase ×1
geofire ×1
geography ×1
geolocation ×1
geospatial ×1
ggmap ×1
gql ×1
ios ×1
javascript ×1
purrr ×1
r ×1
sql-server ×1