百度定位js API

<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 自动定位示例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值