地图

Hae.definePage(["http://api.map.baidu.com/getscript?v=2.0&ak=G5pnfdGgvQH0GNhod7gNxIF8ubXLf1qt"], function(page) {
    page.flow = {
        init: function(pageData, scope) {

            var map;
            var styleOptions = {
                strokeColor: "red", //边线颜色。
                fillColor: "red", //填充颜色。当参数为空时,圆形将没有填充效果。
                strokeWeight: 3, //边线的宽度,以像素为单位。
                strokeOpacity: 0.8, //边线透明度,取值范围0 - 1。
                fillOpacity: 0.6, //填充的透明度,取值范围0 - 1。
                strokeStyle: 'solid' //边线的样式,solid或dashed。
            };
            var top_right_navigation;
            var drawingManager;

            initMapFunc = function() {
                map = new BMap.Map("div_map"); // 创建地图实例  
                var point = new BMap.Point(113.911, 22.966); // 创建点坐标  
                map.centerAndZoom(point, 15); // 初始化地图,设置中心点坐标和地图级别  
                map.enableScrollWheelZoom(); //启用滚轮放大缩小,默认禁用
                map.enableContinuousZoom(); //启用地图惯性拖拽,默认禁用

                top_right_navigation = new BMap.NavigationControl({
                    anchor: BMAP_ANCHOR_TOP_LEFT,
                    type: BMAP_NAVIGATION_CONTROL_SMALL
                }); //左上角,仅包含平移和缩放按钮
                map.addControl(top_right_navigation);

                //实例化鼠标绘制工具
                drawingManager = new BMapLib.DrawingManager(map, {
                    isOpen: false, //是否开启绘制模式
                    enableDrawingTool: false, //是否显示工具栏
                    drawingToolOptions: {
                        anchor: BMAP_ANCHOR_TOP_RIGHT, //位置
                        offset: new BMap.Size(5, 5) //偏离值
                    },
                    circleOptions: styleOptions, //圆的样式
                    polylineOptions: styleOptions, //线的样式
                    polygonOptions: styleOptions, //多边形的样式
                    rectangleOptions: styleOptions //矩形的样式
                });

                drawingManager.addEventListener("polygoncomplete", function(e, overlay) {
                    var listPoint = overlay.getPath();

                    var latlonsBd = "";
                    var latAll = 0;
                    var lonAll = 0;
                    var length = listPoint.length;
                    for (var i = 0; i < length; i++) {
                        var lon = listPoint[i].lng;
                        var lat = listPoint[i].lat;

                        lonAll = lonAll + parseFloat(lon);
                        latAll = latAll + parseFloat(lat);

                        if (i === 0) {
                            latlonsBd = lat + "," + lon;
                        } else {
                            latlonsBd += ";" + lat + "," + lon;
                        }
                    }

                    //保存多边形经纬度数据
                    scope.$transferObject("insertModel").latlons_bd = latlonsBd;
                    scope.$transferObject("insertModel").center_lat_bd = latAll / length;
                    scope.$transferObject("insertModel").center_lon_bd = lonAll / length;
                    scope.$transferObject("insertModel").latlons = "";
                    scope.$transferObject("insertModel").center_lat = "";
                    scope.$transferObject("insertModel").center_lon = "";

                    //                     Hae.alert("data--" + JSON.stringify(scope.$transferObject("insertModel")));
                });

            };

            $.extend(pageData, {
                //校验站点代码是否重复  
                siteCodeUniqueCheck: function() {
                    var site_code = $("#site_code").val();
                    //创建延迟对象
                    var d = $.Deferred();
                    Hae.ajax({
                        url: "services/isdt.base.deliverySite.CheckSiteCodeAndName",
                        type: "post",
                        data: {
                            "site_code": site_code
                        },
                        success: function(data) {
                            if (data.BO.total_record === 0) {
                                //修改创建的延迟对象状态为resolve,true表示校验通过;
                                d.resolve(true);
                            } else {
                                d.resolve(false);
                            }
                        }
                    });
                    //当返回的延迟对象的状态为resolve时,进行后续校验处理。
                    return d.promise();
                },
                //校验站点名称是否重复  
                siteNameUniqueCheck: function() {
                    var site_name = $("#site_name").val();
                    //创建延迟对象
                    var d = $.Deferred();
                    Hae.ajax({
                        url: "services/isdt.base.deliverySite.CheckSiteCodeAndName",
                        type: "post",
                        data: {
                            "site_name": site_name
                        },
                        success: function(data) {
                            if (data.BO.total_record === 0) {
                                //修改创建的延迟对象状态为resolve,true表示校验通过;
                                d.resolve(true);
                            } else {
                                d.resolve(false);
                            }
                        }
                    });
                    //当返回的延迟对象的状态为resolve时,进行后续校验处理。
                    return d.promise();
                },

                //在地图上画多边形
                addPolygonFunc: function() {
                    if (!drawingManager) {
                        initMapFunc();
                    }
                    map.clearOverlays();
                    drawingManager.open();
                    drawingManager.setDrawingMode(BMAP_DRAWING_POLYGON);
                },

                doSave: function() {
                    if (!scope.$transferObject("insertModel").latlons_bd) {
                        Hae.topBox("请选取区域");
                        return;
                    }
                    scope.$doActions(["insertData"]);
                    if (scope.$transferObject("insertModel").belong_company_id && scope.$transferObject("insertModel").city && scope.$transferObject("insertModel").state && scope.$transferObject("insertModel").site_code && scope.$transferObject("insertModel").site_name && scope.$transferObject("insertModel").linkman && scope.$transferObject("insertModel").phone_number && scope.$transferObject("insertModel").delivery_address) {
                        scope.$doActions(["pageRoute"]);
                    }
                }

            });
        },
        domReady: function(pageData, scope) {
            initMapFunc();
        }
    };
});

  

搏击长空
原文地址:https://www.cnblogs.com/yitong/p/5977869.html