gpt4 book ai didi

javascript - 确定是否在城市内或附近

转载 作者:行者123 更新时间:2023-12-02 17:34:51 25 4
gpt4 key购买 nike

如何确定用户是否位于某个城市或其附近。我所说的“附近”是指 50 英里以内。

这对于 HTML5 地理位置来说可能吗?如果可以,我该如何使用它才能与 switch 语句一起使用。

或者既然它可以在 50 英里之内,我是否必须使用一系列 if、else if 和 else?

例如

switch(location){
case 'San Francisco':

然后我可以运行一些js。

我非常感谢任何帮助解决这个问题,因为我不知道如何开始。

最佳答案

有不同的方法可以得到你想要的东西,有些比其他的更复杂,我会给你简单的,或者至少是我能想到的最简单的一种(即使我花了一段时间来编码它:/)。您可以拥有一个包含旧金山附近位置的数组,并获取用户当前所在城市的名称,并与该数组进行比较。

if("geolocation" in navigator){
var lat, lon
var locations = ['richmond', 'berkeley', 'daly city', 'oakland', 'san francisco'];

$('button').click(function(){
navigator.geolocation.getCurrentPosition(function(pos){
lat = pos.coords.latitude; // 37.789709 SF lat
lon = pos.coords.longitude; // -122.445771 SF lon
var geoAPI = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='+lat+','+lon+'&sensor=true';
$.getJSON(geoAPI).done(function(res){
var results = res.results;
var address = results[2].address_components;
var city = address[1].long_name.toLowerCase();
console.log(city);
if(jQuery.inArray(city, locations) !== -1){
alert('You are in San Francisco or nearby');
}

});
});
});
}

我已经对旧金山的经纬度值进行了硬编码,以便您可以看到它的工作原理,只需取消注释实际的生产代码,另请注意,Google map API 返回一个具有不同地址精度级别的数组,因此,理想情况下,您应该循环并确认每一个,我将把它留给您。我希望这能解决您的问题或至少对您有所帮助,祝您好运 =)

jsfiddle Demo

编辑:删除了硬编码坐标并将它们作为注释,因此代码应该可以立即运行,无需取消注释,除非您想测试 SF 并且您不在其中。

关于javascript - 确定是否在城市内或附近,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22702700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com