高德地图某一城市地铁路线高亮解决方案

高德地图某一城市地铁路线高亮解决方案

  • 项目刚好有一个需求,在地图上按需高亮全部或者某一条地铁线路。找了蛮久没找到什么好的解决方案(也可能是自己菜),那就只能自己投机取巧咯。不多说上代码。
<!-- 部分关键HTML和css -->
<!-- 引入高德地图js API,key后面的参数是秘钥,需要去官网申请。AMap.LineSearch要用到,在这里加上参数,不然AMap.LineSearch会提示undifind -->
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=你的key&plugin=AMap.LineSearch"></script> 

<!-- 挂载地图的元素 -->
<div id="map-container"></div>

/* CSS */
#map-container {width:300px; height: 180px; }  

/* js部分 */
// 初始化地图
var map = new window.AMap.Map('map-container', {
      zoom: 9,
      resizeEnable: true,
      center: [113.324269, 23.13091]
})

// 实例化某以城市公交地铁线路查询类(以广州为例)
var linesearch = new window.AMap.LineSearch({
	pageIndex: 1, // 第一页的线路
    city: '广州',
    pageSize: 1, // 每一页的线路条数
    extensions: 'all' // 所有线路类型
 })

// 开始搜索
var name = '2号线'
linesearch.search(name, (status, result) => {
	if (status === 'complete' && result.info === 'OK') {
		// 查询成功调用
        lineSearch_Callback(result)
     } else {
        console.log('查询出错')
     }
})

/* 地铁路线查询服务返回数据解析概况 */
function lineSearch_Callback (data) {
  var lineArr = data.lineInfo;
  var lineNum = data.lineInfo.length;
  if (lineNum == 0) {
     console.log(lineNum)
   } else {
      for (var i = 0; i < lineNum; i++) {
        var pathArr = lineArr[i].path;
        if (i == 0) // 只绘制一条线路,就是需要高亮的地铁线路
          drawbusLine(pathArr);
      }
    }
}

/* 绘制路线 */
drawbusLine(BusArr) {
   let busPolyline = new window.AMap.Polyline({
	     map: map,
	     path: BusArr,
	     strokeColor: '#ddd',// 线颜色
	     strokeOpacity: 0.8,// 线透明度
	     isOutline: true,
	     outlineColor: 'white',
	     strokeWeight: 3 // 线宽
	})
 }
  • 至此就可以画出一条高亮的某一城市的某一条地铁线路,如果你要画全部地铁线路(1号线、2号线等等),只要改下逻辑然后抽象方法循环调用就可以。虽然像菜鸡做法,但我感觉先把需求实现程序可以用再考虑别的才是正道,以后有更好的再换就是了。(希望可以给你们带来帮助)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值