html5经纬度定位 源码_html5 定位 获得当前位置的经纬度

if (navigator.geolocation) {

navigator.geolocation.getCurrentPosition(showPosition, showError, {

// 指示浏览器获取高精度的位置,默认为false

enableHighAccuracy: true,

// 指定获取地理位置的超时时间,默认不限时,单位为毫秒

timeout: 5000,

// 最长有效期,在重复获取地理位置时,此参数指定多久再次获取位置。

maximumAge: 3000

});

} else {

alert("Geolocation is not supported by this browser.此设备不支持定位");

}

function showPosition(position) {

lat = position.coords.latitude;//纬度

lng = position.coords.longitude;//经度

//alert("lat==>"+lat+"===>"+lng);

//alert((typeof(lat) == undefined);

requestData(cId);

}

function showError(error) {

switch (error.code) {

case error.PERMISSION_DENIED: // 用户不允许地理定位

// alert("User denied the request for Geolocation.");

break;

case error.POSITION_UNAVAILABLE: //无法获取当前位置

alert("无法获取您当前的位置,请打开GPS后重试.");

break;

case error.TIMEOUT: // 操作超时

// alert("The request to get user location timed out.");

break;

case error.UNKNOWN_ERROR:

// alert("An unknown error occurred.");

break;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经纬度转换成CGCS2000源码需要使用数学公式和计算方法。CGCS2000是中国大地坐标系2000年版,它是中国权威的大地坐标系之一,可以在中国范围内进行精确的测量和定位。 要将经纬度转换为CGCS2000,首先需要确定经纬度的坐标系和基准面。常见的经纬度坐标系有WGS84和GCJ02,而基准面则包括椭球面、大地水准面等。 接下来,需要根据坐标系和基准面的不同,采用不同的转换公式进行计算。常用的公式包括椭球面高斯投影法、正反算法等。 以椭球面高斯投影法为例,可以使用以下源码进行计算: ```python import math def wgs84_to_cgcs2000(lon, lat): a = 6378137.0 # 长半轴 f = 1 / 298.257223563 # 扁率 lon0 = math.radians(120) # 中央经线 k0 = 1 # 比例因子 e2 = 1 - (1 - f) * (1 - f) * math.sin(lat) * math.sin(lat) n = a / math.sqrt(e2) t = math.tan(lat) * math.tan(lat) c = f * (1 - f) * math.cos(lat) * math.cos(lat) / (1 - f * f) A = (lon - lon0) * math.cos(lat) M = a * ((1 - e2 / 4 - 3 * e2 * e2 / 64 - 5 * e2 * e2 * e2 / 256) * lat - (3 * e2 / 8 + 3 * e2 * e2 / 32 + 45 * e2 * e2 * e2 / 1024) * math.sin(2 * lat) + (15 * e2 * e2 / 256 + 45 * e2 * e2 * e2 / 1024) * math.sin(4 * lat) - (35 * e2 * e2 * e2 / 3072) * math.sin(6 * lat)) x = k0 * n * ( A + (1 - t + c) * A * A * A / 6 + (5 - 18 * t + t * t + 72 * c - 58 * f) * A * A * A * A * A / 120) y = k0 * (M + n * math.tan(lat) * (A * A / 2 + (5 - t + 9 * c + 4 * c * c) * A * A * A * A / 24 + (61 - 58 * t + t * t + 600 * c - 330 * f) * A * A * A * A * A * A / 720)) return x, y ``` 以上是一个简单的将WGS84坐标系下的经纬度转换成CGCS2000大地坐标系下的坐标的源码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值