百度地图api-绘制多边形的时候获得多边形的中心

文章标签: 百度地图api
2017-8-31 16:15:35     0 人阅读    

网上的很多例子都是获得多边形的顶点,没有获得中心点的,所以没办法自己写了一个

很多时候 在百度地图上面绘制多边形,需要在多边形的中心点绘制出来多边形的名字,比如绘制一个地块,地块中心绘制地块名字

这个时候就需要获得多边形的中心点。

 

                                      百度地图绘制多边形,获得中心点,并在中心点绘制标签

 

获得中心点的具体函数如下 :

 

 

/**
     * 获得图形的中心点
     */
	function getCenterPoint(path)
	{
		//var path = e.;//Array<Point> 返回多边型的点数组
		//var ret=parseFloat(num1)+parseFloat(num2);  
		var x = 0.0;
		var y = 0.0;
        for(var i=0;i<path.length;i++){
             x=x+ parseFloat(path[i].lng);
             y=y+ parseFloat(path[i].lat);
        }
		x=x/path.length;
		y=y/path.length;
		
		//return new BMap.Point(path[0].lng,path[0].lat);
		return new BMap.Point(x,y);
		//return path[0];
	}

 

多边形的中心点计算方法主要是所有顶点的x值平均值和所有y值平均值。

 

 

调用的方法如下:

 

/*
		 * 自己写算法计算地块的中心点,并且把基地名字绘制到中心点上面
		 */
        this.getShowLabel = function(){
        	//或的多边形的所有顶点
        	var point = getCenterPoint(overlay.getPath());
        	console.log(point);
        	//获得中心点
        	var label=new BMap.Label(baseName, {offset:new BMap.Size(-20,-5), position:point});
        	label.setStyle(  {color : "#000", fontSize : "14px", backgroundColor :"0.05",border :"0", fontWeight :"bold" });//对label 样式隐藏    
        	console.log(label);
        	return label;
        }

 

 

                                    百度地图绘制多边形,获得中心点,并在中心点绘制标签

关于如何通过百度api绘制多边形,可以参考如下的例子 

 

http://www.cnblogs.com/fozero/p/5912287.html

 

http://blog.csdn.net/superdog007/article/details/52795216


原文地址:http://www.itmmd.com/201708/820.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

  上一篇
下一篇  百度地图api- CopyrightControl 版权信息在地图重新定位后消失的情况处理

精彩回复
发表评论
姓名: