pc端简单获取定位

首先拿到百度地图的注册账号

引入api

<script src="http://api.map.baidu.com/api?v=2.0&ak=自己的ak码"></script>

        var _this=this;
	  	function getLocation() { 
		 	//根据IP获取城市 
		 	var myCity = new BMap.LocalCity(); 
		 	myCity.get(getCityByIP); 
	 	}
	  	function getCityByIP(rs) { 
			var cityName = rs.name; 
			_this.adress=cityName;
 		}
window.onload=getLocation();
	  		

 

### 实现PC定位测距的前功能 在PC实现定位测距的功能主要依赖于浏览器提供的地理定位API以及一些额外的技术手段来完成距离测量。以下是详细的解决方案: #### 使用HTML5 Geolocation API进行定位 现代Web浏览器提供了Geolocation API,允许开发者访问用户的地理位置信息。此API通过`navigator.geolocation`对象提供接口,调用方法如下的代码片段所示[^3]。 ```javascript if ("geolocation" in navigator) { navigator.geolocation.getCurrentPosition( function (position) { const latitude = position.coords.latitude; const longitude = position.coords.longitude; console.log(`Latitude: ${latitude}, Longitude: ${longitude}`); }, function (error) { console.error("Error occurred while retrieving location:", error); }, { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 } ); } else { console.error("Geolocation is not supported by this browser."); } ``` 这段代码展示了如何利用JavaScript检测并获取当前用户的位置经纬度。如果成功,则打印出纬度和经度;如果有任何错误发生,则会在控制台记录相应的错误消息。 #### 距离计算逻辑 一旦获得了两个点(起点与终点)各自的经纬度之后,就可以运用Haversine公式或其他类似的地球表面两点间最短路径算法来进行距离测算。下面是一个简单的例子展示如何基于两组坐标值计算它们之间的直线距离[^3]: ```javascript function calculateDistance(lat1, lon1, lat2, lon2) { const R = 6371e3; // 地球半径单位为米 const φ1 = (lat1 * Math.PI) / 180; // φ, λ 表示角度转换成弧度制 const φ2 = (lat2 * Math.PI) / 180; const Δφ = ((lat2 - lat1) * Math.PI) / 180; const Δλ = ((lon2 - lon1) * Math.PI) / 180; const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2); const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); return R * c; // 返回的距离单位为米 } // 示例调用 const distanceInMeters = calculateDistance(52.5200, 13.4050, 48.8566, 2.3522); console.log(`${distanceInMeters.toFixed(2)} meters`); ``` 这里定义了一个名为 `calculateDistance()` 的函数,它接受四个参数——分别是起始地点和目标地点的纬度和经度,并返回两者间的实际距离(以米为单位)。注意这里的输入应该都是十进制度数形式表示的角度。 #### 结合前后服务扩展功能 对于更加复杂的场景比如多人协作或者长时间跟踪某物体移动轨迹等情况可能还需要引入服务器参与运算过程。此时可以考虑将客户采集到的数据上传至云数据库保存下来供后续分析查询之用。同时也可以借助第三方的地图服务平台绘制路线图以便直观呈现结果。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值