天地图绘制点、线、多边形工具,并获取绘制线的数据

一、源代码 

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>天地图-地图API-范例-工具集合</title>
    <script type="text/javascript" src="http://api.tianditu.gov.cn/api?v=4.0&tk=您的密钥"></script>
    <style type="text/css">
      body,
      html {
        width: 100%;
        height: 100%;
        margin: 0;
        font-family: '微软雅黑';
      }
 
      #mapDiv {
        height: 400px;
        width: 100%;
      }
 
      p,
      input {
        margin-top: 10px;
        margin-left: 5px;
        font-size: 14px;
      }
    </style>
    <script>
      var map,
        zoom = 16,
        handler;
      function onLoad() {
        //初始化地图对象
        map = new T.Map('mapDiv');
        //设置显示地图的中心点和级别
        map.centerAndZoom(new T.LngLat(117.61961, 27.24944), zoom);
        //允许鼠标双击放大地图
        map.enableScrollWheelZoom();
 
        var config = {
          showLabel: true,
          color: 'blue',
          weight: 3,
          opacity: 0.5,
          fillColor: '#FFFFFF',
          fillOpacity: 0.5
        };
        //创建标注工具对象
        polygonTool = new T.PolygonTool(map, config);
      }
 
      function openPolygonTool() {
        if (handler) handler.close();
        handler = new T.PolygonTool(map);
        handler.open();
      }
      function drawFinish(e) {
        let arry = e.currentLnglats;
     
        let res = [];
        arry.forEach(function (item) {
          res.push([item.lat, item.lng]);
        });
           alert(JSON.stringify(res));
      }
      function openPolylineTool() {
        if (handler) handler.close();
        handler = new T.PolylineTool(map);
        handler.open();
        handler.addEventListener('draw', drawFinish);
      }
 
      function openMarkerTool() {
        if (handler) handler.close();
        handler = new T.MarkTool(map, { follow: true });
        handler.open();
      }
 
      function openRectangleTool() {
        if (handler) handler.close();
        handler = new T.RectangleTool(map, { follow: true });
        handler.open();
      }
      function openCircleTool() {
        if (handler) handler.close();
        handler = new T.CircleTool(map, { follow: true });
        handler.open();
      }
 
      function getLayerCount() {
        return map.getOverlays().length;
      }
    </script>
  </head>
  <body onLoad="onLoad()">
    <div id="mapDiv"></div>
    <p>本例演示多种覆盖物工具</p>
    <div>
      <input type="button" value="点工具" onClick="openMarkerTool() " />
      <input type="button" value="多边形工具" onClick="openPolygonTool() " />
      <input type="button" value="线工具" onClick="openPolylineTool() " />
      <input type="button" value="矩形工具" onClick="openRectangleTool() " />
      <input type="button" value="画圆工具" onClick="openCircleTool() " />
      <input type="button" value="获取图层个数" onClick="alert(getLayerCount()) " />
      <input type="button" value="清除所有" onClick="map.clearOverLays()" />
    </div>
  </body>
</html>

二、效果(绘制线、多边形)

 绘制线完成后双击鼠标获取线,数据格式如下:

 参考链接:天地图API

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值