自动检测位置(城市和州),并将该信息分别放入输入和选择字段

Posted

技术标签:

【中文标题】自动检测位置(城市和州),并将该信息分别放入输入和选择字段【英文标题】:Auto detect location (city & state), and put that information into input and select fields, respectively 【发布时间】:2017-06-26 14:35:49 【问题描述】:

我一直在研究 Geolocation API 以及 jQuery Geolocation API,但还没有找到一个很好的解决方案来解决我正在尝试做的事情。

最终,我希望用户能够点击城市位置输入中的图标,浏览器检测他们的城市和州,然后该信息自动填充到字段中,城市字段是基本输入和状态是一个选择。

<div class="search">
  <a href="autodetect-here"><span class="fa fa-map-marker"></span></a>
  <input type="text" id="location" placeholder="City" />
  <select>

<option selected="state">State</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="DC">District Of Columbia</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>

【问题讨论】:

您发布的代码缺少您的尝试。您尝试了哪些方法,但以什么方式不起作用? 所以你想要一个用来选择州,然后系统找出他们的城市,还是有一个与上述代码分开的按钮,可以同时选择州和代码? 我还在尝试。因为我在陌生的领域,所以我所做的一切都没有接近。 fa-map-marker 图标是我想用来触发地理定位的。 @ChrisOwens:那么看来你在这里问得有点过早了。作为一般经验法则,当问“我如何做 X?”时在 Stack Overflow 上,答案通常是查看 X 的文档和示例。我们不寻求替换现有的文档/教程/等。在大多数情况下,您会发现问题在您尝试后很容易解决。一旦您进行了一些尝试,如果仍然有问题(您不理解的错误消息、特定操作中的意外结果等),那么我们可以提供帮助。 是的,我也这么认为。抱歉,但我正在寻找方向而不是有人为我做这件事,我得到了。一旦我有一些工作,我会更新,以便这篇文章对那些将来可能会发现它的人有一些价值。 【参考方案1】:

使用 html5 地理定位 API 获取经度和纬度,然后将这些坐标发送到 API,例如 Google 的地理编码 API。这将为您返回一个地址,您可以从中解析城市和州。

HTML5 Geolocation

Google geocoding API

注意:从 Chrome 50 开始,Geolocation API 只能在安全的情况下工作 HTTPS 等上下文。如果您的网站托管在非安全源上 (例如 HTTP)获取用户位置的请求将不再 功能。

【讨论】:

以上是关于自动检测位置(城市和州),并将该信息分别放入输入和选择字段的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JavaScript 和 AJAX 根据邮政编码自动填充城市和州?

城市和州或国家/地区的 Python 当前时间

php PHP:检测城市和州(infodb.com)

SwiftUI - 如何通过视图模型完成调用函数

使用 CLGeocoder 将城市和州信息添加到 MKAnnotation

如何在表单上实现城市/州字段的自动完成?