使用jquery对接高德地图地址四级联动

最近在商城项目上遇到了收获地址的瓶颈,可以有两种的解决办法

  1. 自己的库,几十W条数据的那种
  2. 去对接第三方的服务

我找到了阿里爸爸提供的一个服务,高德地图提供的服务

官方的文档地址 : 点我

下方代码的预览地址 : 点我

项目的下载地址 : 点我

开始撸

1.去创建自己的应用,并且申请 Web服务

点我

2. 复制下方代码,到自己的页面上即可。

<!DOCTYPE html>
<html>
<head>
	<title>选择您的收获地址</title>
</head>
<!-- 引入bootstrap 给默认的下拉框优化用的  -->
<link href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.css" rel="stylesheet">

<body>
   <div>
          	<select id="sheng">
                <option>请选择省</option>
            </select>
	          <select id="shi"></select>
	          <select id="xian"></select>
	          <select id="zhen"></select>
   </div>

<!--引入jquery-->
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>

<script type="text/javascript">
  
  var amapkey="";  //高德地图的开发key 填写自己的即可。

	$(function(){
		//在进入页面的时候 省默认写死
		var provinceList = ['北京市', '天津市', '河北省', '山西省', '内蒙古自治区', '辽宁省', '吉林省','黑龙江省', '上海市', '江苏省', '浙江省', '安徽省', '福建省', '江西省', '山东省','河南省', '湖北省', '湖南省', '广东省', '广西壮族自治区', '海南省', '重庆市','四川省', '贵州省', '云南省', '内蒙古自治区', '陕西省', '甘肃省', '青海省', '宁夏回族自治区', '新疆维吾尔自治区', '澳门特别行政区'];     

    var shengHtml="";
		for (var i = 0; i < provinceList.length; i++) {
			shengHtml+='<option value="'+provinceList[i]+'">'+provinceList[i]+'</option>';
		}
	  $("#sheng").append(shengHtml);


	  //查询第二级
       $("#sheng").change(function(){

          //删除之前所选择的
          $("#shi").find("option").remove();
          $("#xian").find("option").remove();
          $("#zhen").find("option").remove();

       	var shihtml="<option value='请选择'>请选择市</option>";
       	var shengval=$(this).val();
       	   $.ajax({
         		type:"post",
         		url:"https://restapi.amap.com/v3/config/district?subdistrict=1&key="+amapkey+"&keywords="+shengval,
         		dataType:"jsonp",
         		success:function(data){ 	
                   $.each(data.districts,function(i,cityvalue){   
                         $.each(cityvalue.districts,function(cityi,city){
                              shihtml+='<option value="'+ city.name+'">'+ city.name+'</option>';
                         })
                         $("#shi").append(shihtml);	
                   })
         		}
         	})
       })


     //查询县 第三级
        $("#shi").change(function(){ 

           var xianHtml="<option value='请选择'>请选择县/区</option>";       
           var $shival=$(this).val();
           $("#zhen").find("option").remove();
           $("#xian").find("option").remove();
     
        $.ajax({
        	type:"post",
        	url:"https://restapi.amap.com/v3/config/district?subdistrict=1&key="+amapkey+"&keywords="+$shival,
          dataType:"jsonp",
          success:function(data){
            	$.each(data.districts,function(i,countyvalue){
            		 $.each(countyvalue.districts,function(countyi,county){
            		    	xianHtml+='<option value="'+ county.name+'">'+ county.name+'</option>';           			
            	  	})
            	$("#xian").append(xianHtml);
            	})
            }
        })    
     })

    //遍历第四级
    $("#xian").change(function(){
       $("#zhen").find("option").remove();
      	var $zhenval=$(this).val();
        var xiangHtml="<option value='请选择'>请选择镇/街道</option>";
        $.ajax({
        	type:"post",
        	url:"https://restapi.amap.com/v3/config/district?subdistrict=1&key="+amapkey+"&keywords="+$zhenval,
        	dataType:"jsonp",
        	success:function(data){
        		$.each(data.districts,function(i,streetvalue){
                   $.each(streetvalue.districts,function(streetI,street){
                   	 xiangHtml+='<option value="'+ street.name+'">'+ street.name+'</option>';  
                })
            $("#zhen").append(xiangHtml);      
        		});
        	}
        }) 
    })
	})
</script>
</body>
</html>
  1. 配置自己的key

var amapkey="";  //高德地图的开发key 填写自己的即可。

帮助部分:

  1. 代码使用中文命名
    在这里插入图片描述
    sheng,shi等都使用了熟悉的中文命名,如果不习惯可以修改成自己的嘛,并且查看阿里巴巴开发手册
    在这里插入图片描述
    2. 方法我认为不是最简单的
    因为我不是特别的精通JavaScript,如果你有更快捷的方法,大佬求赐教

看完上面还没明白?

可以加我的一些联系方式,来一起研究
QQ: 2501521908
Mail: 2501521908@qq.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值