js Ruft den maximalen/minimalen Wert des Breiten- und Längengrads innerhalb einer bestimmten Entfernung entsprechend dem Breiten- und Längengrad des aktuellen Standorts ab

Gibt bei gegebenem Breiten- und Längengrad die maximalen und minimalen Breiten- und Längengrade innerhalb des konfigurierten Bereichs zurück.

Beispielverwendung: getMaxMinLongitudeLatitude(curPositionObj.lng,

curPositionObj.lat, 0.5)//Range Die maximalen und minimalen Werte des Breiten- und Längengrads innerhalb von 500 Metern um die aktuelle Position

var isPosition = true, //是否定位
    curPositionObj, //当前经纬度
    curPostionRange, //经纬度范围
    curPositionSuc=false; //当前定位是否成功
if (isPosition) {
    //精准定位
    AMap.plugin('AMap.Geolocation', function() {
          var geolocation = new AMap.Geolocation({
              enableHighAccuracy: true,
              /*是否使用高精度定位,默认:true*/
              timeout: 10000,
              /*超过10秒后停止定位,默认:5s*/
              buttonPosition: 'RB',
              /*定位按钮的停靠位置*/
              buttonOffset: new AMap.Pixel(10, 20),
              /*定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)*/
              zoomToAccuracy: false /*定位成功后是否自动调整地图视野到定位点*/
          });
          geolocation.getCurrentPosition(function(status, result) {
              if (status == 'complete') {
                curPositionSuc=true;
                curPositionObj=result.position;
                curPostionRange=getMaxMinLongitudeLatitude(curPositionObj.lng,curPositionObj.lat,0.5);//当前500米范围的经纬度范围。 
              } else {
                  alert('定位失败!');
              }
          });
        });
}

/**
 * @param {*} longitude
 * @param {*} latitude
 * @param {*} distince  千米
 * @returns
 */
function getMaxMinLongitudeLatitude(longitude,latitude,distince){
    let r = 6371.393;    // 地球半径千米
    let lng = longitude;
    let lat = latitude;
    let dlng = 2 * Math.asin(Math.sin(distince / (2 * r)) / Math.cos(lat * Math.PI / 180));
    dlng = dlng * 180 / Math.PI;// 角度转为弧度
    let dlat = distince / r;
    dlat = dlat * 180 / Math.PI;
    let minlat = lat - dlat;
    let maxlat = lat + dlat;
    let minlng = lng - dlng;
    let maxlng = lng + dlng;
    var lngLatObj={
        minlng:minlng,
        maxlng:maxlng,
        minlat:minlat,
        maxlat:maxlat
    }
    return lngLatObj;
}

Acho que você gosta

Origin blog.csdn.net/pinhmin/article/details/128716737
Recomendado
Clasificación