其他分享
首页 > 其他分享> > 天地图-第六篇-图形绘制

天地图-第六篇-图形绘制

作者:互联网

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>天地图</title>
    <style>
        /*设置地图显示大小*/
        #mapDiv{
            width: 600px;
            height: 400px;
            position: relative;
            float: left;
        }
    </style>
    </head>
    <body onl oad="onLoad()"> 
        <!--地图容器-->
        <div id="mapDiv"></div>
        
        <div>
            <span>操作</span>
            <input type="button" onClick="drawMarker()" value="绘制点"/>
            <input type="button" onClick="drawLine()" value="绘制线"/>
            <input type="button" onClick="drawRectangle()" value="绘制矩形"/>
            <input type="button" onClick="drawPolygon()" value="绘制多边形"/>
            <input type="button" onClick="drawCircle()" value="绘制圆形"/>
               <input type="button" onClick="drawRanging()" value="测距"/>
            <input type="button" onClick="drawPolygonTool()" value="测面"/>
            <input type="button" onClick="getDrawNumber()" value="获取图层个数"/>
            <p>说明: 测距出现的点 框 和 线都属于图层 故一条线 + 俩个点 +连个点的说明 总共5个图层 </p>
            <p>测面 是 面和 说明 共俩个图层</p>
        </div>
        
    </body>
    <script type="text/javascript" src="http://api.tianditu.gov.cn/api?v=4.0&tk=你的密钥"></script>
    <script type="text/javascript">
        var map;
        var zoom = 12;
        function onl oad() {
            map = new T.Map('mapDiv');
            map.centerAndZoom(new T.LngLat(116.40769, 39.89945), zoom);
        }
        
        //绘制标注(点)
        function drawMarker(){
            var markerTool = new T.MarkTool(map, {follow: true});
            map.clearOverLays();
            markerTool.open();
            //绑定mouseup事件 在用户每完成一次标注时触发事件。
            markerTool.addEventListener("mouseup",getPoints1);
        }
        
        function getPoints1(e){
            var points = e.currentLnglat;
            //标注点的坐标
            console.log(points);
        }
        
        //绘制线
        function drawLine(){
            var PolylineTool = new T.PolylineTool(map);
            map.clearOverLays();
            PolylineTool.open();
            //绑定draw事件 用户每次完成拉框操作时触发事件。
            PolylineTool.addEventListener("draw",getPoints2);
        }
        
        function getPoints2(e){
            //用户当前绘制的折线的点坐标数组
            console.log(e.currentLnglats);
            console.log("用户当前绘制的折线的地理长度:"+e.currentDistance);
        }
        
        
        //绘制矩形
        function drawRectangle(){
            var rectTool = new T.RectangleTool(map);
            map.clearOverLays();
            rectTool.open();
            
            //绑定draw事件 用户每次完成拉框操作时触发事件。
            rectTool.addEventListener("draw",getPoints3);
        }
        
        function getPoints3(e){
            var points = e.currentBounds;
            console.log(points);
        }
        
        //绘制多边形
        function drawPolygon(){
            var PolygonTool = new T.PolygonTool(map);
            map.clearOverLays();
            PolygonTool.open();
            //绑定draw事件 用户双击完成一次折线绘制时触发事件。
            PolygonTool.addEventListener("draw",getPoints4);
        }
        
        function getPoints4(e){
            //用户当前绘制的多边形的点坐标数组
            console.log(e.currentLnglats);
            console.log("用户最后绘制的多边形的地理面积:"+e.currentArea);
        }
        
        
        //测距
        function drawRanging(){
            var config = {
                showLabel: true
            };
            lineTool = new T.PolylineTool(map, config);
            lineTool.open();
            
               //绑定addpoint事件 用户测距过程中,每次点击底图添加节点时触发事件。
            lineTool.addEventListener("addpoint",getAddpoint);
        }
        
        function getAddpoint(e){
            //用户当前绘制的折线的点坐标数组。
            console.log(e.currentLnglats);
            console.log("用户当前绘制的折线的地理长度:"+e.currentDistance)
        }
        
        //测面
        function drawPolygonTool(){
            var config = {
                showLabel: true,
                color: "blue", weight: 3, opacity: 0.5, fillColor: "#FFFFFF", fillOpacity: 0.5
            };
            //创建标注工具对象
            polygonTool = new T.PolygonTool(map, config);
            polygonTool.open();
            //绑定addpoint事件 用户测距过程中,每次点击底图添加节点时触发事件。
            polygonTool.addEventListener("draw",getDraw);
        }
        
        function getDraw(e){
            //最后绘制的多边形的顶点坐标数组
            console.log(e.currentLnglats);
            console.log("用户最后绘制的多边形的地理面积:"+e.currentArea);
        }
        
        //绘制圆形
        function drawCircle(){
            var config = {
                color: "blue",
                weight: 3,
                opacity: 0.5,
                fillColor: "#FFFFFF", 
                fillOpacity: 0.5
            }
            var circleTool = new T.CircleTool(map,config);
            circleTool.open();
             //绑定drawend事件 用户完成绘制圆时触发
            circleTool.addEventListener("drawend",getDrawend);
        }
        
        function getDrawend(e){
            //中心点坐标
            console.log(e.currentCenter);
            var radius = e.currentRadius;
            console.log("半径,单位为米:"+radius);
            console.log("面积,单位为平方米:"+Math.PI * radius*radius);
        }
        
        //获取图层个数
        function getDrawNumber(){
            var len = map.getOverlays().length;
            console.log("图层个数:"+len);
        }
        
    </script>
</html>

在图层上绘制图形和相关坐标面积的获取。

标签:function,map,console,log,var,图形,绘制,第六篇
来源: https://blog.csdn.net/cherry_vicent/article/details/122615144