当前位置:网站首页>百度定位js API
百度定位js API
2022-08-02 03:24:00 【auspi12341】
<script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=xx"></script>
<div id="l-map"></div>
<script>
// 百度地图API功能
var map = new BMap.Map("l-map", {
enableMapClick: false
});
map.centerAndZoom("杭州市", 11);
map.enableScrollWheelZoom(true);
var myGeo = new BMap.Geocoder();
// 将地址解析结果显示在地图上,并调整地图视野
map.addEventListener("click", function(e) {
map.clearOverlays();
var pt = e.point;
map.addOverlay(new BMap.Marker(pt));
var new_point = new BMap.Point(pt.lng, pt.lat);
var gc = new BMap.Geocoder(); //初始化,Geocoder类
gc.getLocation(new_point, function (rs) { //getLocation函数用来解析地址信息,分别返回省市区街等
var addComp = rs.addressComponents,
province = addComp.province,//获取省份
city = addComp.city,//获取城市
district = addComp.district,//区
street = addComp.street,//街
streetNumber = addComp.streetNumber ? addComp.streetNumber: "";
location_name = street + streetNumber;
document.getElementById("addr-show").value=location_name;
});
});
var lon,lat;
justify_location();
function justify_location() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(geoSuccess, geoError);
// 支持
console.log("支持地理位置接口");
} else {
// 不支持
console.log("不支持地理位置接口");
}
}
function geoSuccess(event) {
lon = event.coords.longitude;
lat = event.coords.latitude;
var point = new BMap.Point(lon,lat);
map.centerAndZoom(point,12);
map.addOverlay(new BMap.Marker(point)); //添加标注
myGeo.getLocation(point, function (rs) { //getLocation函数用来解析地址信息,分别返回省市区街等
console.log( rs.addressComponents);
var addComp = rs.addressComponents,
province = addComp.province,//获取省份
city = addComp.city,//获取城市
district = addComp.district,//区
street = addComp.street,//街
streetNumber = addComp.streetNumber ? addComp.streetNumber: "";
location_name = street + streetNumber;
document.getElementById("addr-show").value=location_name;
});
}
//拒绝授权
function geoError(error) {
console.log(error)
console.log("Error code " + error.code + ". " + error.message);
switch (error.code) {
case error.PERMISSION_DENIED:
alert("定位失败,用户拒绝请求地理定位");
break;
case error.POSITION_UNAVAILABLE:
alert("定位失败,位置信息是不可用");
break;
case error.TIMEOUT:
alert("定位失败,请求获取用户位置超时");
break;
case error.UNKNOWN_ERROR:
alert("定位失败,定位系统失效");
break;
}
}
$("#dw_button").on('click', function() {
if (!$("#citys").val() || !$("#qus").val()) {
return alert("请选择区域");
}
if (!$("#addr-show").val()) {
return alert("输入详细地址后定位");
}
map.clearOverlays(); //清除地图上所有覆盖物
function myFun() {
if (local.getResults().getPoi(0)) {
var pp = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果
map.centerAndZoom(pp, 18);
map.addOverlay(new BMap.Marker(pp)); //添加标注
} else {
alert("无法解析地址,请完善详细地址信息或者手动点击地图选择");
}
}
var local = new BMap.LocalSearch(map, { //智能搜索
onSearchComplete: myFun
});
local.search($("#citys :selected").text() + $("#qus :selected").text() + $("#addr-show").val());
});
</script>
百度js API 自动定位示例
边栏推荐
猜你喜欢
随机推荐
4.14到新公司的一天
nucleo stm32 h743 FREERTOS CUBE MX配置小记录
Phospholipid-polyethylene glycol-targeted neovascularization targeting peptide APRPG, DSPE-PEG-APRPG
6.24今日学习
Guangzhou Huawei Interview Summary
轮播图详解(完整代码在最后)
阿里云服务器如何使用admin账户登录
npm--package.json---require
骨架效果 之高级渐变,适用图片等待时
debian 10 nat and routing forwarding
---静态页面---
URL模块
一分种一起来了解Vite的基础
项目中遇到的问题
STM32 CAN过滤器
最新,每天填坑,Jeston TX1 精卫填坑,第一步:刷机
clock tick marks
ES6数组的扩展方法map、filter、reduce、fill和数组遍历for…in for…of arr.forEach
URL module
我的小笔记 =》其他东东