예제 #1
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;
 }
예제 #2
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);
        }