如何近似纬度/经度以在地图上显示大致位置?

Posted

技术标签:

【中文标题】如何近似纬度/经度以在地图上显示大致位置?【英文标题】:how to approximate a latitude/longitude to show an approximate location on the map? 【发布时间】:2018-05-01 21:25:48 【问题描述】:

我有一个用户的精确经度/纬度坐标(通过 GPS 检索)。但为了保护隐私,我不想在网站上显示精确的坐标。我想返回在 250m 到 500m 之间随机移动的经度/纬度。我该怎么做?

【问题讨论】:

【参考方案1】:

应该这样做。

var latitude = longitude = 24;

// Add offset to the coordinates
latitude += getRandomLongitudeOffset(250, 500);
longitude += getRandomLongitudeOffset(250, 500, latitude);


/* 
    Calculate one meter in degrees
    1 degree = ~111km
    1km in degree = ~0.0089
    1m in degree = ~0.0000089
*/
const COEF = 0.0000089;

/**
 * Returns an offset for coordinates in range [min, max]
*/
function getRandomLatitudeOffset(min, max)
    return getRandomInt(min, max) * COEF;



function getRandomLongitudeOffset(min, max, latitude)
    return (getRandomInt(min, max) * COEF) / Math.cos(latitude * 0.018);



/**
 * Returns a random integer between min (inclusive) and max (inclusive)
 * Using Math.round() will give you a non-uniform distribution!
 */
function getRandomInt(min, max) 
    return Math.floor(Math.random() * (max - min + 1)) + min;

【讨论】:

以上是关于如何近似纬度/经度以在地图上显示大致位置?的主要内容,如果未能解决你的问题,请参考以下文章

单击时获取存储的 LatLng 以在地图上显示位置

windows phone 8 - 如何在地图上显示经度和纬度坐标(当前位置)

如何将相同的纬度和经度分组以在画面中显示多个位置

在图像地图上显示用户的位置

如何设置Xcode模拟器地图的当前位置

Laravel 和谷歌地图:foreach 纬度/经度显示标记或地图