Leaflet 地图中绘制多边形

直接上源码,双击完成多边形。

(使用源码前请去官网下载js文件)

<!DOCTYPE html>
<html>
<head>
 <title>可以画多个多边形</title>

 <script src="../leaflet-include.js"></script>
</head>
<body>
 <div id="map" style="width: 800px; height: 600px; border: 1px solid #ccc"></div>
 <script src="route.js"></script>
 <script>
  var cloudmadeUrl = 'http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{z}/{x}/{y}.png',
   cloudmade = new L.TileLayer(cloudmadeUrl, {maxZoom: 18});
   
  var poly_points = [];//区域
  var poly_line=new L.Polyline([]);//折线
  var map = new L.Map('map', {
      layers: [cloudmade],
      center: new L.LatLng(39.69596043694606, -104.95084762573242),
      zoom: 12,
      doubleClickZoom :false//不可以通过双击放大,因为双击的作用是添加矩形
  });
  map.on('click', addClickLatlng);//单击,添加点
  map.on('dblclick', showPoly);//双击,显示面
  //画矩形
  function addClickLatlng(e){
      //当前点
      var clickLocation=[e.latlng.lat,e.latlng.lng];
    poly_points.push(clickLocation);
    //显示折线
    poly_line.addLatLng(e.latlng);
    map.addLayer(poly_line);
      //var point=new L.Point(e.layerPoint.x,e.layerPoint.y);
  }
  //显示矩形
  function showPoly(){
      for (var i = 0, latlngs = [], len = poly_points.length; i < len; i++) {
      latlngs.push(new L.LatLng(poly_points[i][0], poly_points[i][1]));
      }
      var poly = new L.Polygon(latlngs);
      map.addLayer(poly);
      //清空
      poly_points=[];
      poly_line=new L.Polyline([]);
  }
 </script>
</body>
</html> 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值