获取各个城市轮廓线

原文地址:地址

我的码云:地址

1、点击获取城市列表:

渲染结果:

待到城市列表渲染出来以后,点击任意城市,下滑,即可看到城市轮廓图(如点击昆明):

 代码:

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
		<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=sSelQoVi2L3KofLo1HOobonW"></script>
		<title>获取地区轮廓线</title>
	</head>
	<style type="text/css">
		* {
			padding: 0;
			margin: 0;
			list-style: none;
		}

		.initial {
			width: 1000px;
		}

		.H {
			width: 100%;
			height: 20px;
			font-size: 12px;
			color: red;
			overflow: hidden;
		}

		.S {
			width: 1000px;
		}

		.C {
			width: 50px;
			height: 20px;
			font-size: 12px;
			color: red;
			font-weight: bold;
			background: rgb(210, 196, 196);
			float: left;
			border: 1px solid white;
			line-height: 20px;
			text-align: center;
			cursor: pointer;
		}
	</style>
	<body>
		<div id="main">
			<button type="button" id="btn">获取城市列表</button>
			<div class="initial"></div>
		</div>
		<div id="map" style="width:100%;height:800px"></div>
		<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
		<script type="text/javascript">
			function getBoundary() {
				$("#btn").click(function() {
					$.ajax({
						type: 'get',
						url: 'city.json', //城市json路径
						dataType: 'json',
						success: function(data) {
							for (k in data.city) {
								var H = $("<h2 class = 'H'>" + data.city[k].title + "</h2>"); //将获取到的首字母渲染到创建的H2里
								$(".initial").append(H); //将H2添加到名为initial的div父元素内
								var S = $("<ul class='S'></ul>"); //创建ul标签
								$(".initial").append(S); //将ul添加到名为initial的div父元素内
								for (var kk = 0; kk < data.city[k].lists.length; kk++) {
									var C = $("<li class = 'C'>" + data.city[k].lists[kk] + "</li>"); //获取每个首字母下对应的城市名称,并添加到创建的li中
									$(".S").eq(k).append(C); //将所创建的li添加到对应首字母的ul中去
								}
							}
							$("li").click(function() {
								console.log($(this).text());
								name = $(this).text(); //获取到所点击li的文本内容,存放在name里
								console.log(name);

								//-----华丽分界线(下面是获取城市轮廓图的代码)-----
								var map = new BMap.Map("map");
								map.enableScrollWheelZoom();
								// function getBoundary() {
								var bdary = new BMap.Boundary();
								// var name = '北京'; //**在这里直接输入城市名字即可**
								bdary.get(name, function(rs) { //获取行政区域
									map.clearOverlays(); //清除地图覆盖物
									var count = rs.boundaries.length; //行政区域的点有多少个
									for (var i = 0; i < count; i++) {
										var ply = new BMap.Polygon(rs.boundaries[i], {
											strokeWeight: 2,
											strokeColor: "#ff0000"
										}); //建立多边形覆盖物
										map.addOverlay(ply); //添加覆盖物
										map.setViewport(ply.getPath()); //调整视野
									}
								});
								console.log(name);
							})
						}
					})
					$("#btn").css("display", "none");
				});
			}
			getBoundary();
		</script>
	</body>
</html>

样式有些骨干(2333)!

Json文件可见上篇:json文件地址

巴拉巴拉:

==主页传送门==

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值