ER = 6378137.0 FL = 1/298.257; def rad(d) d * Math::PI / 180.0 end def calc_distance(lat1, lng1, lat2, lng2) cl1 = rad((lat1 + lat2)/2) cl2 = rad((lat1 - lat2)/2) cl = rad((lng1 - lng2)/2) scl1 = Math.sin(cl1) ** 2 scl2 = Math.sin(cl2) ** 2 scl = Math.sin(cl) ** 2 s = scl2 * (1 - scl) + (1 - scl1) * scl c = (1 - scl2) * (1 - scl) + scl1 * scl w = Math.atan(Math.sqrt(s / c)) r = Math.sqrt(s * c) / w; d = 2 * w * ER; h1 = (3 * r - 1) / 2 / c h2 = (3 * r + 1) / 2 / s; s = d * (1 + FL * (h1 * scl1 * (1 - scl2) - h2 * (1 - scl1) * scl2)); puts '> 99km' if s > 99000 s end
相关推荐
在IT行业中,管理和切换Ruby版本是一项常见的任务,特别是在开发环境中,不同的项目可能依赖于不同版本的Ruby。`RVM`(Ruby Version Manager)是解决这一问题的利器,它允许开发者在多个Ruby版本之间轻松切换。本文...
Ruby-Geokit是一个强大的开源库,专为Ruby开发者设计,用于处理与地理位置相关的任务,如地理编码、反向地理编码以及进行距离和方向的计算。这个gem极大地简化了在Ruby应用中集成地理服务的工作,使得开发者能够轻松...
Ruby是一种强大的、面向对象的脚本语言,尤其适合Web开发,如使用Rails框架。在Ubuntu操作系统上安装Ruby,可以让你利用其丰富的库和工具来构建高效的应用程序。本指南将详细讲解如何在Ubuntu系统上安装Ruby 2.1.5这...
Ruby是一种动态、开源的编程语言,以其简洁、优雅的语法和强大的元编程能力著称。在Ruby开发中,为了管理不同版本的Ruby环境,我们常常会使用到`rbenv`和`ruby-build`这两个工具。本文将详细介绍如何使用`ruby-build...
Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、...
PROGRAMMING+RUBY中文版 PROGRAMMING+RUBY中文版 PROGRAMMING+RUBY中文版
《Ruby基础教程(第5版)》是一本由日本知名编程专家高桥征义和后藤裕藏共同著作,经过Ruby之父松本行弘审校的编程入门指南。本书专注于教授Ruby 2.3版本的语法和核心概念,旨在帮助初学者轻松掌握这门强大的面向...
ruby-build 是一个 rbenv 插件,它提供了一个 rbenv install 命令来在类 UNIX 系统上编译和安装不同版本的 Ruby。你还可以在需要精确控制 Ruby 版本安装的环境中使用不带 rbenv 的 ruby-build。用法在开始之前,...
这是Vincenty公式的Ruby实现,用于计算地球上两点之间的距离。 该公式假定地球的形状是扁球形,因此比假定球形地球的其他方法要准确得多。 该代码在很大程度上受到Chris Venues Javascript实现和解释的启发: 两...
这本书“Ruby元编程第二版”专注于讲解Ruby语言的这一独特特性,旨在帮助开发者更好地理解和利用Ruby的元编程能力。 元编程的基本概念是程序能够自省、修改自身或者在运行时生成新的代码。在Ruby中,元编程的强大之...
Ruby Ruby Ruby Ruby Ruby Ruby
4. 自动配置:根据当前目录下的 .ruby-version 文件自动选择合适的 Ruby 版本。 5. 兼容性:可能支持其他 Ruby 相关工具,如 bundler(用于管理 gem 包的工具)。 在 fish shell 中,fry 可能会提供更加流畅的...
《Programming Ruby中文版第二版》是一本专注于Ruby编程语言的权威指南,对于想要深入学习和理解Ruby编程的读者来说,是一本不可多得的资源。Ruby作为一种动态、面向对象的编程语言,以其简洁、优雅的语法和强大的元...
在Ruby编程语言的领域中,《重构 Ruby 版》是一本著名的参考书籍,该书由 Jay Fields、Shane Harvie 和 Martin Fowler 共同撰写,其中 Martin Fowler 是重构方面的权威专家。 书中详细介绍了重构的概念和技术,以及...
在Ruby的世界里,管理不同的Ruby实现(如MRI、JRuby、Rubinius、MagLev和MRuby)是非常重要的,这有助于开发者根据项目需求选择最适合的运行时环境。`ruby-install`就是这样一个工具,它允许用户方便地安装和管理...
当新的Ruby版本发布时,可以根据个人需求选择是否升级。例如,对于Ruby 1.9.2版本的升级: - 下载Ruby 1.9.2的源码包并按照前述步骤进行编译安装。 - 更改PATH环境变量中的路径指向新的版本目录。 这种方式实现了...
Ruby 1.9.3 p484 是一个重要的编程语言版本,专为Windows平台设计,提供了稳定且高效的运行环境。Ruby是一种动态、面向对象的脚本语言,因其简洁、优雅的语法和强大的元编程能力而深受开发者喜爱。在1.9.3这个版本中...
Ruby 版数据库连接池, 可以参考。 数据库是postgresql
本书是它的第2版,其中包括超过200页的新内容,以及对原有内容的修订,涵盖了Ruby 1.8中新的和改进的特性以及标准库模块。它不仅是您学习Ruby语言及其丰富特性的一本优秀教程,也可以作为日常编程时类和模块的参考...
Eloquent RUBY Kindle 版本