<!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 rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" />
  <style>
    html,
    body,
    #container {
      height: 100%;
      width: 100%;
    }

    .amap-icon img,
    .amap-marker-content img {
      width: 25px;
      height: 34px;
    }

    .marker {
      position: absolute;
      top: -20px;
      right: -118px;
      color: #fff;
      padding: 4px 10px;
      box-shadow: 1px 1px 1px rgba(10, 10, 10, .2);
      white-space: nowrap;
      font-size: 12px;
      font-family: "";
      background-color: #25A5F7;
      border-radius: 3px;
    }

    .input-card {
      width: 18rem;
      z-index: 170;
    }

    .input-card .btn {
      margin-right: .8rem;
    }

    .input-card .btn:last-child {
      margin-right: 0;
    }
  </style>
</head>

<body>
<div id="container"></div>
<div class="input-card">
  <label style="color:grey">点标记操作</label>
  <div class="input-item">
    <input type="button" class="btn" onclick="addMarker()" value="添加点标记">
    <input type="button" class="btn" onclick="updateIcon()" value="更新点标记图标">
  </div>
  <div class="input-item">
    <input type="button" class="btn" onclick="clearMarker()" value="删除点标记">
    <input type="button" class="btn" onclick="updateContent()" value="更新点标记内容">
  </div>
</div>
<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=ed6cc1d37c6db81aac6d65c9d7d1b4d8"></script>
<script type="text/javascript">
  let marker, map = new AMap.Map("container", {
    resizeEnable: true,
    center: [116.397428, 39.90923],
    zoom: 13
  });

  // 实例化点标记
  function addMarker() {
    if (!marker) {
      marker = new AMap.Marker({
        icon: "//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png",
        position: [116.406315, 39.908775],
        offset: new AMap.Pixel(-13, -30)
      });
      marker.setMap(map);
    }

  }
  function updateIcon() {

    marker.setIcon('//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-red.png')
  }

  function updateContent() {

    if (!marker) {
      return;
    }

    // 自定义点标记内容
    const markerContent = document.createElement("div");

    // 点标记中的图标
    const markerImg = document.createElement("img");
    markerImg.className = "markerlnglat";
    markerImg.src = "//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-red.png";
    markerImg.setAttribute('width', '25px');
    markerImg.setAttribute('height', '34px');
    markerContent.appendChild(markerImg);

    // 点标记中的文本
    const markerSpan = document.createElement("span");
    markerSpan.className = 'marker';
    markerSpan.innerHTML = "Hi，我被更新啦！";
    markerContent.appendChild(markerSpan);

    marker.setContent(markerContent); //更新点标记内容
    marker.setPosition([116.391467, 39.927761]); //更新点标记位置
  }

  // 清除 marker
  function clearMarker() {

    if (marker) {
      marker.setMap(null);
      marker = null;
    }
  }
</script>
</body>

</html>
