正在回答 回答被采纳积分+1
3回答
好帮手慕星星
2021-11-12 18:22:04
同学你好,启动项目后会有两个地址,使用第二个地址在浏览器打开

因为官网的介绍是如果浏览器H5定位失败,会调用IP定位

另外建议将浏览器位置打开,在设置--隐私中,例如win10系统设置

在访问地址的时候可能会有弹框提示,点击‘确定’即可(可能显示不太准)

代码:
<template>
<div id="app">
<p>{{address}}</p>
<div id='container'></div>
</div>
</template>
<script>
import BMap from 'BMap';
export default {
name: 'App',
data() {
return {
address: '',
}
},
mounted() {
this.createMap()
},
methods: {
createMap() {
var that = this;
var map = new BMap.Map("container");
var point = new BMap.Point(116.331398, 39.897445);;
map.centerAndZoom(point, 12);
var geoc = new BMap.Geocoder();
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r) {
if (this.getStatus() == BMAP_STATUS_SUCCESS) {
var mk = new BMap.Marker(r.point);
map.addOverlay(mk);
map.panTo(r.point);
console.log('您的位置:' + r.point.lng + ',' + r.point.lat);
var pt = r.point;
geoc.getLocation(pt, function(rs) {
var addComp = rs.addressComponents;
that.address = addComp.province + addComp.city + addComp.district + addComp.street + addComp.streetNumber
});
} else {
console.log('failed' + this.getStatus());
}
}, {
enableHighAccuracy: true
})
},
}
}
</script>
<style scoped>
#container {
width: 100%;
height: 80vh;
}
</style>2、另外ip定位,老师这里显示‘北京市’,并不是全国

部分代码如下:
methods: {
createMap() {
var map = new BMap.Map("container");
var point = new BMap.Point(116.331398, 39.897445);
map.centerAndZoom(point, 12);
function myFun(result) {
var cityName = result.name;
map.setCenter(cityName);
console.log("当前定位城市:" + cityName);
}
var myCity = new BMap.LocalCity();
myCity.get(myFun);
},
}3、SDK定位是手机端的,可暂时不考虑。
自己再测试下。
好帮手慕星星
2021-11-12 10:33:02
同学你好,项目中需要使用百度地图或者高德地图来定位,可以参考官方文档中的定位:
https://lbs.baidu.com/index.php?title=jspopularGL/guide/geoloaction
https://lbs.amap.com/api/jsapi-v2/guide/services/geolocation
网上也有参考例子:
https://www.jianshu.com/p/32d19e0c0da2
https://blog.csdn.net/sun_0516/article/details/108007471
写代码前提注册百度地图或者高德地图来获取key,然后再使用。
自己感兴趣的话,可以试试。祝学习愉快~



恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星