예제 #1
0
        private void Reload_Click(object sender, EventArgs e)
        {
            string                  message       = "是否取消当前改变?";
            string                  caption       = "消息";
            MessageBoxButtons       buttons       = MessageBoxButtons.OKCancel;
            MessageBoxIcon          icon          = MessageBoxIcon.Question;
            MessageBoxDefaultButton defaultResult = MessageBoxDefaultButton.Button2;
            // Show message box
            DialogResult result = MessageBox.Show(message, caption, buttons, icon, defaultResult);

            if (result == DialogResult.OK)
            {
                UtilityClass.CopyHashTableStringListArray(mf.NodeRouteMap, NewRouteMap);
                UtilityClass.CopyHashTableStringList(mf.NodeNetMap, NewNetMap);
                Net.Routes.Clear();
                routes.Routes.Clear();
                AddNet();
                //AddRoutes();
                string startnode = (string)NodeBox.SelectedItem;
                RefreshGrid(startnode);
                RefreshNeiborList(startnode);
                RefreshNetGrid();
                Reload.Enabled        = false;
                BuildRouteBtn.Enabled = false;
                StatusLabel.Text      = "更改已撤销!";
            }
        }
예제 #2
0
 //保存配置为默认
 private void SaveBtn_Click(object sender, EventArgs e)
 {
     mf.NodeRouteMap.Clear();
     mf.NodeNetMap.Clear();
     UtilityClass.CopyHashTableStringListArray(NewRouteMap, mf.NodeRouteMap);
     UtilityClass.CopyHashTableStringList(NewNetMap, mf.NodeNetMap);
     UtilityClass.CopyHashTableString(DistMap, mf.DistMap);
     //调用地图类的路由保存函数
     mf.SaveInit();
     mf.AddNet();
     //
     StatusLabel.Text = "路由表已保存!";
     Reload.Enabled   = false;
 }
예제 #3
0
 private void CancelBtn_Click(object sender, EventArgs e)
 {
     if (Reload.Enabled)//未保存或未重置
     {
         string                  message       = "是否保存当前改变?";
         string                  caption       = "消息";
         MessageBoxButtons       buttons       = MessageBoxButtons.OKCancel;
         MessageBoxIcon          icon          = MessageBoxIcon.Question;
         MessageBoxDefaultButton defaultResult = MessageBoxDefaultButton.Button2;
         // Show message box
         DialogResult result = MessageBox.Show(message, caption, buttons, icon, defaultResult);
         if (result == DialogResult.OK)
         {
             UtilityClass.CopyHashTableStringListArray(NewRouteMap, mf.NodeRouteMap);
             UtilityClass.CopyHashTableStringList(NewNetMap, mf.NodeNetMap);
             //调用地图类的路由保存函数
             mf.SaveInit();
             //
             StatusLabel.Text      = "路由表已保存!";
             Reload.Enabled        = false;
             BuildRouteBtn.Enabled = false;
             RouteisRunning        = false;
             if (newthread != null)
             {
                 newthread.Abort();
                 newthread.Join();
                 //newthread = null;
             }
             this.Close();
         }
     }
     else
     {
         RouteisRunning = false;
         if (newthread != null)
         {
             newthread.Abort();
             newthread.Join();
             //newthread = null;
         }
         this.Close();
     }
 }
예제 #4
0
        private void SetRouteForm_Load(object sender, EventArgs e)
        {
            UtilityClass.CopyHashTableStringList(mf.NodeNetMap, NewNetMap);
            UtilityClass.CopyHashTableStringListArray(mf.NodeRouteMap, NewRouteMap);
            UtilityClass.CopyHashTableString(mf.DistMap, DistMap);
            double v = 0.5;

            // config map
            string[] str = { "地图配置", "地图中心", "纬度" };
            double   lat = double.Parse(XmlHelper.GetConfigValue(xmldoc, str));

            string[]    lngstr = { "地图配置", "地图中心", "经度" };
            double      lng    = double.Parse(XmlHelper.GetConfigValue(xmldoc, lngstr));
            PointLatLng p      = new PointLatLng(lat, lng);

            // set node marker

            p.Offset(GpsToGmapOffset);
            routemap.Position           = p;
            NodeMarker                  = new UserMarker(p);
            NodeMarker.IsHitTestVisible = true;
            objects.Markers.Add(NodeMarker);
            NodeMarker.ToolTipMode = MarkerTooltipMode.OnMouseOver;
            CultureInfo ci     = new CultureInfo("en-us");
            PointLatLng gpspos = NodeMarker.Position;

            gpspos.Offset(GmapToGpsOffset);
            NodeMarker.ToolTipText = "GPS\r\n{经度=" + gpspos.Lng.ToString("F08", ci) + ",纬度=" + gpspos.Lat.ToString("F08", ci) + "}";
            string[] offsetstr  = { "地图配置", "偏移校准", "纬度" };
            string[] offsetstr1 = { "地图配置", "偏移校准", "经度" };
            string   offset     = XmlHelper.GetConfigValue(xmldoc, offsetstr);
            double   latoffset  = 0;
            double   lngoffset  = 0;

            if (offset != null)
            {
                latoffset = double.Parse(offset);
            }
            offset = XmlHelper.GetConfigValue(xmldoc, offsetstr1);
            if (offset != null)
            {
                lngoffset = double.Parse(offset);
            }
            if ((lngoffset != 0) && (latoffset != 0))
            {
                GmapToGpsOffset = new PointLatLng(latoffset, lngoffset);
                GpsToGmapOffset = new PointLatLng(-latoffset, -lngoffset);
            }

            routemap.MapType = mf.MainMap.MapType;
            routemap.MinZoom = 1;
            routemap.MaxZoom = 18;
            routemap.Zoom    = 16;
            routemap.MapName = "路由设置";


            gtl = new PointLatLng(lat + v, lng - v);
            gtl.Offset(GpsToGmapOffset);
            gbr = new PointLatLng(lat - v, lng + v);
            gbr.Offset(GpsToGmapOffset);

            //读取节点
            XmlDocument xmlfile = new XmlDocument();

            xmlfile.Load(xmldoc);
            XmlNode xn = xmlfile.DocumentElement;

            xn = xn.SelectSingleNode("descendant::节点配置");
            foreach (XmlNode subnode in xn.ChildNodes)
            {
                NodeBox.Items.Add(subnode.Name);
                string[] sstr    = { "节点配置", subnode.Name, "节点位置", "纬度" };
                double   slat    = double.Parse(XmlHelper.GetConfigValue(xmldoc, sstr));
                string[] lngsstr = { "节点配置", subnode.Name, "节点位置", "经度" };
                double   slng    = double.Parse(XmlHelper.GetConfigValue(xmldoc, lngsstr));
                //string[] desc = { "节点配置", subnode.Name, "节点描述" };
                //string strdes = XmlHelper.GetConfigValue(xmldoc, desc);
                PointLatLng pp = new PointLatLng(slat, slng);
                pp.Offset(GpsToGmapOffset);
                GMapMarkerGoogleGreen newnode = new GMapMarkerGoogleGreen(pp);
                newnode.Tag              = subnode.Name;
                newnode.ToolTipMode      = MarkerTooltipMode.Always;
                newnode.IsHitTestVisible = true;
                pp.Offset(GmapToGpsOffset);
                newnode.ToolTipText = newnode.Tag.ToString();
                WebNodeLayer.Markers.Add(newnode);
            }

            if (objects.Markers.Count > 0)
            {
                routemap.ZoomAndCenterMarkers(null);
                //ZoomSlider.Value = (int)MainMap.Zoom;
            }

            //AddRoutes();
            AddNet();
            RefreshNetGrid();//更新网络表
            //注册网络表改变事件
            Net.Routes.CollectionChanged += new GMap.NET.ObjectModel.NotifyCollectionChangedEventHandler(Net_CollectionChanged);
        }