地理位置距离我的位置最近的位置(纬度,经度)

2024-02-03

我想根据我所在的位置显示具体信息。

我有五个具有不同信息的城市,我想显示我最接近的城市(信息)。

我如何使用 javascript 以最简单的方式做到这一点。

Ex.

如果我将城市经纬度存储在数组中

var cities = [
  ['new york', '111111', '222222', 'blablabla']
  ['boston', '111111', '222222', 'blablabla']
  ['seattle', '111111', '222222', 'blablabla']
  ['london', '111111', '222222', 'blablabla']
]

根据我当前的位置(纬度,经度),我想要我最接近的城市。


以下是使用 HTML5 地理定位来获取用户位置的基本代码示例。然后它调用NearestCity()并计算从该位置到每个城市的距离(公里)。我放弃使用半正弦公式,而是使用更简单的毕达哥拉斯公式和等距柱状投影来调整经线的曲率。

// Get User's Coordinate from their Browser
window.onload = function() {
  // HTML5/W3C Geolocation
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(UserLocation);
  }
  // Default to Washington, DC
  else
    NearestCity(38.8951, -77.0367);
}

// Callback function for asynchronous call to HTML5 geolocation
function UserLocation(position) {
  NearestCity(position.coords.latitude, position.coords.longitude);
}


// Convert Degress to Radians
function Deg2Rad(deg) {
  return deg * Math.PI / 180;
}

function PythagorasEquirectangular(lat1, lon1, lat2, lon2) {
  lat1 = Deg2Rad(lat1);
  lat2 = Deg2Rad(lat2);
  lon1 = Deg2Rad(lon1);
  lon2 = Deg2Rad(lon2);
  var R = 6371; // km
  var x = (lon2 - lon1) * Math.cos((lat1 + lat2) / 2);
  var y = (lat2 - lat1);
  var d = Math.sqrt(x * x + y * y) * R;
  return d;
}

var lat = 20; // user's latitude
var lon = 40; // user's longitude

var cities = [
  ["city1", 10, 50, "blah"],
  ["city2", 40, 60, "blah"],
  ["city3", 25, 10, "blah"],
  ["city4", 5, 80, "blah"]
];

function NearestCity(latitude, longitude) {
  var minDif = 99999;
  var closest;

  for (index = 0; index < cities.length; ++index) {
    var dif = PythagorasEquirectangular(latitude, longitude, cities[index][1], cities[index][2]);
    if (dif < minDif) {
      closest = index;
      minDif = dif;
    }
  }

  // echo the nearest city
  alert(cities[closest]);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

地理位置距离我的位置最近的位置(纬度,经度) 的相关文章

  • 为什么我需要使用 setState 回调来设置依赖于第一个项目的 setState 完成的第二个状态项目的状态?

    在此 componentDidUpdate 方法中 执行 setState 将引号设置为从 fetch 返回的内容后 我必须使用回调再次执行 setState 将 randomQuoteIndex 设置为调用 randomQuoteInde
  • SVG线宽问题

    我开始了我的svg学习 我想用svg线做一些技巧吧 但有件事我不明白 我为每个技能创建 2 行 一行是空的 另一行是知识百分比 问题是 前两行的高度是我给出的笔画宽度的一半 其他线都有很好的高度 这是一个 jsbin http jsbin
  • 只保留 A-Z 0-9 并使用 javascript 从字符串中删除其他字符

    我正在尝试验证字符串以使它们成为有效的网址 我只需要保留 A Z 0 9 并使用以下命令从字符串中删除其他字符javascript or jquery 例如 贝儿餐厅 我需要将其转换为 百丽餐厅 所以字符被删除 只保留 A Z a z 0
  • 如何防止输入文本中出现“后重音”

    我相信这是一个简单的问题 但在谷歌上搜索几个小时后我找不到任何答案 也许我无法在搜索中使用正确的单词 P 我有一个 javascript 方法 可以防止用户用数字以外的其他字符填充文本框 如下面的代码所示 它在 KeyDown 事件中使用
  • IE localStorage 事件失火

    在 Internet Explorer 9 和 10 中 localStorage 实现意外地触发事件 这里有很棒的线索 Chrome 的 localStorage 实现存在错误 https stackoverflow com questi
  • 将文本字段限制为仅包含数字的最佳方法?

    I m using the following Javascript to restrict a text field on my website to only accept numerical input and no other le
  • Angular 2 将字符串转换为 md5 哈希

    我找到了ts md5 https www npmjs com package ts md5包 但在示例中它有一个hashStr方法 但现在不行了 类型上不存在属性 hashStr Md5 使用该错误后 该错误会记录在我的控制台中 我怎样才能
  • 如何在打字稿中使用外部js

    我通过 Typescript 代码生成 Angular JS 代码 在一种情况下 我需要将外部 JS 文件添加到我的打字稿文件中 并且需要访问 js 文件中的类 我像这样添加js文件
  • ES6 静态方法引用 self? [复制]

    这个问题在这里已经有答案了 我有两节课 存储库和用户存储库 我想在 Repository 中定义一个静态方法 该方法在运行时调用 UserRepository 中的静态函数 有什么干净的方法可以做到这一点吗 class Repository
  • 居中

    我的问题 http i56 tinypic com ff3jmo png http i56 tinypic com ff3jmo png 项目符号点未对齐 我要做的只是 text align center ing ul 所在的类 我可以对齐
  • 如何使用 Javascript 在 html 文件中搜索字符串?

    我有 5 个 html 文件 并且有一个搜索表单 我想用它来搜索这些 html 文件中的文本
  • 为什么我的 D3 SVG 图上的轴不会更新?

    I have 简单的 D3 散点图 http www raxacoricofallapatorius com test scattertest html我在显示数据的几个不同属性之间切换 但是虽然我可以更改数据点 并按照我想要的方式进行转换
  • 从请求url获取hash参数

    我有这样的网址 http www coolsite com daily plan id 1 http www coolsite com daily plan id 1解析该字符串并读取哈希值 id 之后的值 的最简单方法是什么 谢谢 在客户
  • 未捕获的类型错误:对象 # 在 Chrome 中没有“查找”方法

    可能与 未捕获的类型错误 对象 没有方法 查找 https stackoverflow com q 11134646 561731 这是我的问题的讨论的聊天记录 https chat stackoverflow com rooms 17 c
  • 如何使用 fetch() 和 WhatWG 流获取文件上传进度

    注意 我并不是在寻找任何替代方案 我知道这可以通过 XMLHttpRequest 来完成 我也不关心浏览器支持 我只想了解新的 即将推出的标准 我有一个File https developer mozilla org en US docs
  • 如果 jquery 验证激活,如何在单选按钮中放置红色边框[重复]

    这个问题在这里已经有答案了 我的问题是 如果 jquery 验证像示例图片中那样激活 我无法使单选按钮具有红色边框 任何人都可以帮我解决这个问题吗 http i38 photobucket com albums e149 eloginko
  • 如何将数据推送到嵌套对象

    如何将另一个元素推入variables来自以下对象的属性 var request name Name id 3 rules name Rule name tags tagId 1 variables variable var1 matchT
  • ‘state’未定义 no-undef

    我使用教程来学习 React 但我很快就陷入困境 在教程中 他们使用以下代码 import React Component from react class Counter extends Component state count 0 r
  • VS Code 扩展 - 获取完整路径

    我正在为 VS Code 编写一个插件 我需要知道调用扩展的文件的路径 无论是从编辑器上下文菜单或资源管理器上下文菜单调用还是用户只需键入扩展命令 function activate context get full path of the
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L

随机推荐

  • jQuery.ajax() - 如何最好地处理超时?

    我想知道 处理超时的最佳方法是什么jQuery ajax 这是我目前的解决方案 如果发生超时 页面将被重新加载 并且脚本将有另一个机会在给定的时间范围内加载数据 Problem 如果 get json php 下面的示例 确实不可用 它将成
  • 从自定义 mojo 访问 Maven 插件运行时配置的最佳方法?

    我正在编写一个自定义的 maven2 MOJO 我需要从此 MOJO 访问另一个插件的运行时配置 做这个的最好方式是什么 您可以使用以下步骤获取当前在构建中使用的插件列表 首先 您需要让 Maven 将当前项目注入到您的 mojo 中 您可
  • 如何摆脱算法的复杂性?

    锻炼 编写一个 multiple a b 函数 将数字 a 乘以数字 b 而不使用 运算符或 Math imul 方法 multiple 1 1 1 multiple 1 2 2 multiple 0 0 0 Code export def
  • 如何使用两条相交线的概念在 Netlogo 中实现避障(海龟标题与由补丁组成的墙)

    我们如何将 Netlogo 海龟的方向转换为直线方程 y mx c 以便可以将其与另一个直线方程 例如代表墙的补丁 进行比较 我需要将乌龟的航向转换为直线方程 然后将标题线方程与墙的线方程进行比较 墙的线方程有固定的 x 或固定的 y 取决
  • python中读取资源文件

    我是一名 Java 开发人员 后来转为 Python 开发人员 如何在python中读取类路径资源文件 这是我的目录结构 resources test schema xml create confd serialized objects s
  • 以编程方式发送短信,无需打开消息应用程序

    到目前为止 我正在使用以下代码通过我的应用程序向另一部手机发送短信 Intent intent new Intent Intent ACTION VIEW Uri parse sms srcNumber intent putExtra sm
  • 在 Swift 中录制音频

    有谁知道我在哪里可以找到有关如何在 Swift 应用程序中录制音频的信息 我一直在查看一些音频播放示例 但似乎无法找到有关实现音频录制的任何内容 谢谢 在 Swift 3 中 添加框架AVFoundation 在info plist中添加键
  • 使用复选框 onClick 覆盖父级 onClick 事件?

    首先 抱歉我的英语不好 我正在创建一个优惠券网站 但在选择和取消选择优惠券时遇到问题 每张优惠券都位于一个 DIV 框 中 其中有一个复选框 我在 DIV 框中创建了一个 onClick 函数 这样用户可以通过单击 DIV 框中的任何内容来
  • 设置不带货币符号的货币格式

    我在用NumberFormat getCurrencyInstance myLocale 获取我给定的区域设置的自定义货币格式 但是 这始终包含我不想要的货币符号 我只想为给定的区域设置提供正确的货币数字格式 而无需货币符号 Doing a
  • Objective C 中的惰性数据类型

    在 SML 中 可以采用以下方式对惰性编程进行建模 Have a datatype to wrap a computation datatype a susp Susp of unit gt a A function to hold the
  • chol.default(K) 中出现错误:5 阶前导小数对于 betareg 不是正定的

    我正在尝试适应一个beta regression模型使用betareg function of the betareg package对这些数据 df lt data frame category c c1 c1 c1 c1 c1 c1 c
  • 使用 C# 以编程方式读取 Openoffice Calc (.ods)?

    我想知道是否可以使用 C 以编程方式读取 OpenOffice Calc 电子表格 我可以对 Excel xls 和 xlsx 执行此操作 但无法找到读取计算电子表格的解决方案 如果有人有解决方案 请帮助我 ODF NET http www
  • python将csv数据发送到spark Streaming

    我想尝试在 python 中加载 csv 数据并通过 SPark Streaming 流式传输每一行 Spark 我对网络东西还很陌生 我不完全是如果我应该创建一个服务器 python 脚本 一旦建立连接 使用 Spark 流 它将开始发送
  • 在 Spring Boot 中使用 Keycloak 实现 JWT、JWE 和 JWS(签名 JWT)

    我尝试使用 Spring Boot 和 Keycloak 作为 AuthService 来实现一个简单的 OAuth2 使用签名 JWT 进行客户端身份验证 演示应用程序 这个想法是 one secured REST service The
  • 等待和通知如何工作?

    我需要知道 wait 和 notification 到底是如何工作的 我无法通过使用 wait 和 notification 来实现其工作 相反 如果我使用 while 循环等待 它就会正常工作 怎么会这样呢 为什么我不能简单地使用 wai
  • 寻找许可证密钥算法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Stack Overflow 上有很多与许可证密钥相关的问题 但他们不回答这个问题 任何人都可以提供一个简单的许可证密钥算法 该算法独
  • 多个Python类继承

    我试图理解 python 类继承方法 但在弄清楚如何执行以下操作时遇到了一些麻烦 如何从类继承方法有条件的取决于孩子的输入 我尝试了下面的代码但没有取得太大成功 class A object def init self path self
  • Android 上的 FCM 通知可以覆盖之前的通知吗?

    我正在使用 FCM 向 Android 设备发送通知 当应用程序处于后台时 如果我发送 10 个通知 设备将在通知栏上显示 10 个条目 我希望 FCM 在通知栏上只创建一个条目 即新的条目将覆盖旧的条目 我没有找到可以设置这个的键http
  • 迭代数组并更新值。错误:“@lvalue $T5”与“Int”不同

    我有以下语法Swift func basicFunction anArray Int aValue Int gt Int for var i 0 i lt 5 i if anArray i 0 anArray i aValue I get
  • 地理位置距离我的位置最近的位置(纬度,经度)

    我想根据我所在的位置显示具体信息 我有五个具有不同信息的城市 我想显示我最接近的城市 信息 我如何使用 javascript 以最简单的方式做到这一点 Ex 如果我将城市经纬度存储在数组中 var cities new york 11111