高德地图海量点 API 初探

高德地图提供了地图上标记海量点的 API,具体内容和其他 API 可见官网高德地图 Js API
但是官网的文档实在太大了,而且各种链接有点隐蔽,看起来很费事。所以这里主要是对着一段 html 代码简要介绍一下。

talk is cheap, show me the code!

开始,第一块不解释:

<!DOCTYPE html>
<html lang="en">

头部,基本上不用修改:

  <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
      rel="stylesheet"
      href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css"
    />
    <style>
      html,
      body,
      #container {
        height: 100%;
        width: 100%;
      }
      .input-card .btn {
        margin-right: 1.2rem;
        width: 9rem;
      }
      .input-card .btn:last-child {
        margin-right: 0;
      }
    </style>
  </head>

body 部分开头,API 啥的,注意替换你的 key

  <body>
    <div id="container" class="map" tabindex="0"></div>
    <script
      type="text/javascript"
      src="https://a.amap.com/jsapi_demos/static/citys.js"
    ></script>
    <script
      type="text/javascript"
      src="https://webapi.amap.com/maps?v=1.4.15&key=这里换成你申请的key"
    ></script>

接下来,地图和点的具体样式(如果有特殊需求,建议使用自定义地图

    <script type="text/javascript">
      var map = new AMap.Map("container", {
        zoom: 12, // 加载后的放大倍数
        center: [118.00, 32.00], // 加载后显示的位置
        mapStyle: "amap://styles/你选择的地图", // 可以选现成的也可以自定义地图
        showLabel: false, // 不显示文字
      });

      var style = [
        // 三种点标记样式,可以随意修改,后面添加点的时候会用到 style
        {
          url: "你的点标记图片链接1",
          anchor: new AMap.Pixel(4, 4),
          size: new AMap.Size(9, 9),
        },
        {
          url: "你的点标记图片链接2",
          anchor: new AMap.Pixel(4, 4),
          size: new AMap.Size(9, 9),
        },
        {
          url: "你的点标记图片链接3",
          anchor: new AMap.Pixel(4, 4),
          size: new AMap.Size(9, 9),
        },
      ];

      var mass = new AMap.MassMarks(citys, {
        opacity: 1,
        zIndex: 111,
        cursor: "pointer",
        style: style,
      });

      map.setFeatures("road"); // 显示道路
      // 支持的Features:"bg" 区域面、"point" 兴趣点、"road" 道路及道路标注、"building" 建筑物
    </script>

添加海量点,注意替换经纬度

    <script>
      var data = [
        // style 后面对应的就是之前设定的点标记样式
        { lnglat: [longitude, latitude], style: 1 },
        { lnglat: [longitude, latitude], style: 2 },
        { lnglat: [longitude, latitude], style: 3 },
      ]
      mass.setData(data);
    </script>

生成地图,大功告成

    <script>
      mass.setMap(map);
    </script>
  </body>
</html>

大致效果如下(我在自定义地图的时候只保留了道路)
效果

posted @ 2020-09-04 20:33  BwShen  阅读(138)  评论(0编辑  收藏  举报