Openlayers3 绘制圆
需求中出现了在地图上画圆的需求,此需求在ol3以上的版本的ol是很简单的,直接上代码:
//创建一个数据集合 var features = new ol.Collection(); //100 个圆 for(var i = 0 ; i < 100 ; i++) { var center_x = 120 + Math.random() * 0.1 ; var center_y = 30 + Math.random() * 0.1 ; //圆形,中心点和半径 var cricle = new ol.geom.Circle([center_x ,center_y] , 0.002) ; var feature = new ol.Feature({ geometry: cricle, labelPoint: new ol.geom.Point([center_x ,center_y]), name: '' + i }); features.push(feature); }
创建一个数据图层:
var clayer = new ol.layer.Vector({ source: new ol.source.Vector({features: features}), style: function (feature) { var s = new ol.style.Style({ fill: new ol.style.Fill({ color: 'rgba(255, 0, 0, 0.4)' }), stroke: new ol.style.Stroke({ color: '#ffcc33', width: 2 }) , text:new ol.style.Text({ text: feature.get("name") }) }) ; return s; } });
创建地图:
var view = new ol.View({ projection: 'EPSG:4326', center: [120, 30], zoom: 10 }); var map = new ol.Map({ layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }), clayer ], target: 'map', controls: ol.control.defaults({ attributionOptions: /** @type {olx.control.AttributionOptions} */ ({ collapsible: false }) }), view: view });
到此全部结束。效果如图:
demo在附件
转载自:https://blog.csdn.net/jjxliu306/article/details/84883681