借助高德api绘图

向师弟请教了一下如何用高德api绘图,学习了一下,师弟真是很优秀了,在此记录一下流程。

  1. 到高德控制台申请一个高德js可视化的api,然后点击JavaScript API,便可以显示教程和组件。
  2. 首先点击一下示例中心,会有官方给出的系列示例,选择与你的需求最接近的一个示例,后续便在这个示例的基础上去修改完善,得到所要的js地图可视化。比如最简单的点击“地图的创建”,右边便会生成html和js的源码,拷贝到本地便有了一个基础的内容。
  3. 根据需求去文档中找到对应的组件,比如我想打一堆点就找到点标记,想要画折线就找到矢量图形poliline,然后将组件的js代码拷贝到底图上即可。这个过程类似于ps,是一个个图层的迭加。

下面是一个点图的源码,大家可以看下如何做这个拼图的拼接工作。

<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
  <title>英文、中英文地图</title>
  <link 
  <link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" />
  <style>
    html,
    body,
    #container {
      width: 100%;
      height: 100%;
    }
  </style>
</head>

<body>
  <div id="container"></div>
  <div class="input-card" style="width:13rem">
    <h4>底图语言切换</h4>
    <div id="lang">
      <div class="input-item"><input id="en" name="language" type="radio" checked="checked"><span class="input-text">英文底图</span></div>
      <div class="input-item"><input id="zh_en" name="language" type="radio"><span class="input-text">中英文对照</span></div>
      <div class="input-item"><input id="zh_cn" name="language" type="radio"><span class="input-text">中文底图</span></div>
    </div>
  </div>
  <script src="https://cache.amap.com/lbs/static/es5.min.js"></script>
  <script src="https://webapi.amap.com/maps?v=1.4.15&key=your ak"></script>
  <script src="file:./OD.js"></script>
  <script>
    //初始化地图
    var map = new AMap.Map('container', {
      resizeEnable: true,
      center: [120.087731,30.308141],
      lang: "en" //可选值:en,zh_en, zh_cn
    });

    //绑定radio点击事件
    var radios = document.querySelectorAll("#lang input");
    radios.forEach(function(ratio) {
      ratio.onclick = setLang;
    });

    function setLang() {
      map.setLang(this.id);
    }

    for (var i=0;i<od0613.length;i++)
    {
      var marker = new AMap.Marker({
        position: new AMap.LngLat(od0613[i]['lnglat'][0],od0613[i]['lnglat'][1]),   // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
        // position: new AMap.LngLat(120.085216,30.309185),   // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
        title: 'OD'
      });
      map.add(marker);
    }

  </script>
</body>

</html>

其中我改写的只有这个代码片段,确实是相当方便了:

for (var i=0;i<od0613.length;i++)
    {
      var marker = new AMap.Marker({
        position: new AMap.LngLat(od0613[i]['lnglat'][0],od0613[i]['lnglat'][1]),   // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
        // position: new AMap.LngLat(120.085216,30.309185),   // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
        title: 'OD'
      });
      map.add(marker);
    }
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值