gpt4 book ai didi

google-maps - 使用Bing或Google Maps API获取用户的位置(纬度,经度)

转载 作者:行者123 更新时间:2023-12-04 03:45:40 24 4
gpt4 key购买 nike

有没有一种方法可以使用Bing Maps API或Google Maps API检索用户的经度和纬度。我想我看到了一个代码段,其中“自动定位”功能用于在 map 本身上标记用户:

var geoLocationProvider = new Microsoft.Maps.GeoLocationProvider(map);  
geoLocationProvider.getCurrentPosition(); 

但是该函数不返回任何数据,它只是在 map 上设置位置,而我需要该位置来执行一些计算,即计算哪个预定义位置列表最接近当前用户位置。除此之外,该API是否可以计算作为输入提供的两个位置(纬度,经度)之间的距离?

谢谢,
帕维尔

最佳答案

获取您的位置不是Map API的一部分。而是使用HTML5 GeoLocation API获取您的位置。一个例子是:

 navigator.geolocation.getCurrentPosition(locationHandler);

function locationHandler(position)
{
var lat = position.coords.latitude;
var lng = position.coords.longitude;
}

要计算经/纬点之间的距离,请查看 http://www.movable-type.co.uk/scripts/latlong.html
// Latitude/longitude spherical geodesy formulae & scripts (c) Chris Veness 2002-2011                   - www.movable-type.co.uk/scripts/latlong.html 
// where R is earth’s radius (mean radius = 6,371km);
// note that angles need to be in radians to pass to trig functions!
var R = 6371; // km
var dLat = (lat2-lat1).toRad();
var dLon = (lon2-lon1).toRad();
var lat1 = lat1.toRad();
var lat2 = lat2.toRad();

var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;

关于google-maps - 使用Bing或Google Maps API获取用户的位置(纬度,经度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8914580/

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