Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RoR:使用google maps api检查其他位置半径内的位置_Ruby On Rails_Ruby On Rails 3_Google Maps_Geocoding_Gmaps4rails - Fatal编程技术网

Ruby on rails RoR:使用google maps api检查其他位置半径内的位置

Ruby on rails RoR:使用google maps api检查其他位置半径内的位置,ruby-on-rails,ruby-on-rails-3,google-maps,geocoding,gmaps4rails,Ruby On Rails,Ruby On Rails 3,Google Maps,Geocoding,Gmaps4rails,我正在使用谷歌地图。我试图找到一种方法,通过它我可以看到一个位置是否在地图圈内。比如说 @circles_json = '[ {"lng": -122.214897, "lat": 37.772323, "radius": 1000000}, ] " 这有助于我创建圆。但是,我如何判断“位置B”是否在@circles\u json中呢 我正在考虑使用gemruby地理编码器。如果是的话,我该怎么做?我看了火车司机。但这主要取决于本地数据库。我要寻找的是查看在我的数据库中输入的两个位置是否彼此

我正在使用谷歌地图。我试图找到一种方法,通过它我可以看到一个位置是否在地图圈内。比如说

@circles_json = '[
 {"lng": -122.214897, "lat": 37.772323, "radius": 1000000},
]
"

这有助于我创建圆。但是,我如何判断“位置B”是否在
@circles\u json
中呢

我正在考虑使用gem
ruby地理编码器
。如果是的话,我该怎么做?我看了火车司机。但这主要取决于本地数据库。我要寻找的是查看在我的数据库中输入的两个位置是否彼此接近。在这种情况下,半径为50M

感谢您的指导


感谢

要检查点是否在圆内,请计算点与圆中心之间的距离。如果距离大于半径,则它位于圆之外。如果半径大于距离,则它位于圆内

Ruby Geocoder有一种方便的方法来计算两点之间的距离

Geocoder::Calculations.distance_between(point1, point2)
要使此返回为真/假,请使用简单的比较器:

in_circle? = Geocoder::Calculations.distance_between(point1, point2) < radius
在圆圈中?=地理编码器::计算(点1,点2)<半径之间的距离

使用
#distance_

阅读帮助是的,我在终端中看到,正如您所说,一些复杂的测地功能正在执行。也就是说,我的模型中有这个
@locations=Product.near(Geocoder.coordinates(@Product.first\u address),50,:order=>:distance)
。但问题是,我想看看
@product.second_address
是否位于
@locations
内。另外,当你说
时,它返回一组位于以下范围内的对象:radius miles
,我知道这就是地理编码器的工作原理。尽管如此,我没有任何需要返回的db列。只需比较即可返回
真或假
。希望我说的有道理:)任何进一步的指导或帮助都将不胜感激。谢谢,@gg_:)我明白了,你想检查任意坐标。好的,让我想想。我会编辑我的答案,如果我想出了什么,否则我会删除它。谢谢你花时间。连我都在努力。如果我有什么想法,我也会让你知道的。谢谢