define(["leaflet"], function(){/** * 绘制多段线 * @param options * @returns {*} * @private */var _drawLine = function(latlngs, options){return L.polyline(latlngs, options);};/** * 绘制多边形 * @param options * @private */var _drawPolygon = function(latlngs, options){var polygon;if(latlngs.length < 3){console.log("点数少于3,无法绘制多边形!");} else {var firstPt = latlngs[0];var lastPt = latlngs[latlngs.length - 1];if(firstPt.equals(lastPt)){latlngs.pop();//移除与起点相同的终点}polygon = L.polygon(latlngs, options);return polygon;}};/** * 绘制矩形 * @param bounds * @param options * @returns {*} * @private */var _drawRect = function(bounds, options){return L.rectangle(bounds, options);};/** * 绘制圆形 * @param center * @param radius * @param options * @returns {*} * @private */var _drawCircle = function(center, radius, options){return L.circle(center, radius);};/** *封装,暴露公共方法 */return {drawLine : _drawLine,drawPolygon : _drawPolygon,drawRect : _drawRect,drawCircle : _drawCircle}})调用时代码:require(["drawHelper"], function(drawHelper){ function drawLine(){var latlngs = new Array();for(var i = 20; i < 30; i++){ for(var j = 100; j < 110; j++){latlngs.push(new L.latLng(i, j)); }}var polylineOpt = { color : "blue", weight : "2", opacity : 0.8, smoothFactor : 2.0};var polyline = drawHelper.drawLine(latlngs, polylineOpt);polyline.addTo(mainmap); }; function drawPolygon(){var latlngs = new Array();latlngs.push(L.latLng(31, 110), L.latLng(31, 111), L.latLng(32, 111), L.latLng(32, 110), L.latLng(32, 109));var Opt = { stroke : true, color : "blue", weight : "2", opacity : 0.8, fill : true, fillColor : "red", fillOpacity : 0.6};var polygon = drawHelper.drawPolygon(latlngs, Opt);polygon.addTo(mainmap); } function drawRect(){var bounds = [[33, 110], [36, 113]];var Opt = { stroke : true, color : "blue", weight : "2", opacity : 0.8, fill : true, fillColor : "yellow", fillOpacity : 0.6};drawHelper.drawRect(bounds, Opt).addTo(mainmap); } function drawCircle(){var center = L.latLng(32, 116);var Opt = { stroke : true, color : "red", weight : "2", opacity : 0.8, fill : true, fillColor : "green", fillOpacity : 0.6};drawHelper.drawCircle(center, 200000, Opt).addTo(mainmap); } drawLine(); drawPolygon(); drawRect(); drawCircle();})实现效果如下。这里我封装的还不彻底,但是已经够用了。像基础的地图操作,图层控制都可以写一个mapcontrol进行统一的管理
以上就是关于JavaScript模块化编程的论述,希望对大家的学习有所帮助。