如何在网页上获取用户的当前位置[仅限移动端网页]

<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script>


<script>
/*************js实现*************/
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(getPositionSuccess, getPositionError);
}else{
alert("您的浏览器不支持自动定位!");
}
/***用户定位成功**/
function getPositionSuccess(position){
var lat = position.coords.latitude;
var lng = position.coords.longitude;
var address="";


//通过baiduMap API获取街道名称
var map = new BMap.Map("allmap");
var point = new BMap.Point(lng,lat);
var gc = new BMap.Geocoder();
gc.getLocation(point, function(rs){
 var addComp = rs.addressComponents;
 address = addComp.city + addComp.district + addComp.street + addComp.streetNumber;
 alert("longitude="+lng+"atitude="+lat);
 alert("address="+address);
});


}




/**用户定位失败**/
function getPositionError(error){
switch(error.code){
case error.TIMEOUT:
alert("连接超时,请重试");
break;
case error.PERMISSION_DENIED:
alert("您拒绝了使用位置共享服务,查询已取消");
break;
case error.POSITION_UNAVAILABLE:
alert("亲爱的火星网友,非常抱歉,我们暂时无法为您所在的星球提供位置服务");
break;
}
}
</script>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Uniapp 移动端应用中获取定位并在地图上显示当前位置,可以使用以下步骤: 1. 在项目中引入地图 SDK(如百度地图 SDK、高德地图 SDK 等),并按照相应的文档进行配置。 2. 在页面中创建地图组件,并设置地图的初始中心点和缩放级别。 3. 在页面中添加获取定位的按钮,并在按钮的点击事件中调用定位 API 来获取当前位置的经纬度信息。 4. 将获取到的经纬度信息传递给地图 SDK,并使用 SDK 提供的接口在地图上添加当前位置的标记。 以下是一个简单的示例代码: ``` <template> <view> <map :longitude="longitude" :latitude="latitude" :scale="scale" @markertap="onMarkerTap"></map> <button @tap="getLocation">获取位置</button> </view> </template> <script> export default { data() { return { longitude: 0, // 地图中心点的经度 latitude: 0, // 地图中心点的纬度 scale: 16, // 地图的缩放级别 } }, methods: { // 获取定位信息 getLocation() { uni.getLocation({ type: 'gcj02', // 使用国测局坐标系 success: res => { this.longitude = res.longitude this.latitude = res.latitude // 在地图上添加当前位置的标记 uni.addMapMarkers({ id: 0, longitude: res.longitude, latitude: res.latitude, title: '当前位置', iconPath: '当前位置的图标路径', width: 32, height: 32, callout: { content: '当前位置', fontSize: 14, bgColor: '#ffffff', padding: 8, borderRadius: 4, display: 'ALWAYS' } }) }, fail: res => { uni.showToast({ title: '获取位置失败', icon: 'none' }) } }) }, // 点击标记时的事件处理函数 onMarkerTap(e) { uni.showToast({ title: '你点击了当前位置', icon: 'none' }) } } } </script> ``` 需要注意的是,在使用定位 API 时,需要在 `manifest.json` 文件中声明相关权限(如 `location`)。另外,在添加标记时,需要指定标记的图标路径和样式,并可以添加一个气泡提示框来显示标记的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值