Exemplo n.º 1
0
        public async void MapOnClick(object sender, MapMouseEventArgsWPF e)
        {
            try
            {
                SetHighwayFilter();

                DPoint Dpnt = new DPoint();
                Dpnt.X = e.MapXLongLatWGS84;
                Dpnt.Y = e.MapYLongLatWGS84;

                if (checkBoxMapSource.IsChecked == true)
                {
                    checkBoxMapSource.IsChecked = false;

                    shPoint pnt    = new shPoint();
                    int     nodeid = 0;

                    shPointId PointId = await clsRoadRoutingWebApi.GetNearestPointIdOnRoad("0", highwayFilter, Dpnt.X, Dpnt.Y);

                    pnt    = PointId.point;
                    nodeid = PointId.nodeId;

                    if (pnt.x != 0 || pnt.y != 0)
                    {
                        pntSource.X     = pnt.x;
                        pntSource.Y     = pnt.y;
                        nodeSourceId    = nodeid;
                        txtSourceX.Text = Math.Round(pntSource.X, 4).ToString();
                        txtSourceY.Text = Math.Round(pntSource.Y, 4).ToString();
                    }

                    VMMainViewModel.Instance.InvalidateVisual();
                }
                else if (checkBoxMapTarget.IsChecked == true)
                {
                    checkBoxMapTarget.IsChecked = false;

                    shPoint pnt    = new shPoint();
                    int     nodeid = 0;

                    shPointId PointId = await clsRoadRoutingWebApi.GetNearestRoadNodeWithCondition("0", highwayFilter, Dpnt.X, Dpnt.Y, nodeSourceId, true);

                    pnt    = PointId.point;
                    nodeid = PointId.nodeId;


                    //UserSession.ClientSideObject.m_GameManagerProxy.GetNearestPointOnRoadWithCondition(out pnt, out nodeid,highwayFilter, Dpnt.X, Dpnt.Y, nodeSourceId, true);


                    if (pnt.x != 0 || pnt.y != 0)
                    {
                        pntTarget.X = pnt.x;
                        pntTarget.Y = pnt.y;

                        txtTargetX.Text = Math.Round(pntTarget.X, 4).ToString();
                        txtTargetY.Text = Math.Round(pntTarget.Y, 4).ToString();
                        nodeTargetId    = nodeid;
                    }
                    else
                    {
                    }


                    VMMainViewModel.Instance.InvalidateVisual();
                }
                else
                {
                    for (int i = 0; i < dtGridRoute.Items.Count; i++)
                    {
                        OsmRouteData DetailData = ((List <OsmRouteData>)dtGridRoute.ItemsSource)[i];
                        if (DetailData.IsMapClick)
                        {
                            DetailData.IsMapClick = false;

                            shPoint pnt = new shPoint();
                            //  string err = UserSession.ClientSideObject.m_GameManagerProxy.GetNearestPointOnRoad(out pnt, Dpnt.X, Dpnt.Y);
                            int nSourceId = 0;
                            if (i == 0)
                            {
                                nSourceId = nodeSourceId;
                            }
                            else
                            {
                                OsmRouteData prevDetailData = ((List <OsmRouteData>)dtGridRoute.ItemsSource)[i - 1];
                                nSourceId = prevDetailData.NodeId;
                            }

                            int nodeid = 0;


                            shPointId PointId = await clsRoadRoutingWebApi.GetNearestRoadNodeWithCondition("0", highwayFilter, Dpnt.X, Dpnt.Y, nSourceId, true);

                            pnt    = PointId.point;
                            nodeid = PointId.nodeId;


                            //  UserSession.ClientSideObject.m_GameManagerProxy.GetNearestPointOnRoadWithCondition(out pnt, out nodeid, highwayFilter, Dpnt.X, Dpnt.Y, nSourceId, true);


                            if (pnt.x != 0 || pnt.y != 0)
                            {
                                DetailData.X      = pnt.x;
                                DetailData.Y      = pnt.y;
                                DetailData.NodeId = nodeid;
                            }
                            else
                            {
                            }


                            VMMainViewModel.Instance.InvalidateVisual();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
Exemplo n.º 2
0
        public async void MapOnClick(object sender, MapMouseEventArgsWPF e)
        {
          
            if (checkBoxMapReferencePoint.IsChecked == true && string.IsNullOrEmpty(txtRoute.Text)==false)
            {
                txtReferenceX.Tag = null;
                referencePoint = new DPoint();


                DPoint Dpnt = new DPoint();
                Dpnt.X = e.MapXLongLatWGS84;
                Dpnt.Y = e.MapYLongLatWGS84;

                Route route = await SAGSignalR.GetRouteByName(VMMainViewModel.Instance.SimulationHubProxy, txtRoute.Text);
                ActivityRoute = route;
                if(route!=null)
                {
                 

                    double minDist = double.MaxValue;
                    DPoint minDpoint = new DPoint();
                    int leg = 0;
                    int i = -1;
                    foreach(DPoint dpoint in route.Points)
                    {
                        i++;
                        double dist = Utilites.GreatCircleDistance(Dpnt.X, Dpnt.Y, dpoint.X, dpoint.Y);
                        if(dist<minDist)
                        {
                            minDist = dist;
                            minDpoint = dpoint;
                            leg = i;
                        }
                    }



                    float NearestIndex=0;
                   // shPoint[] shPoints = Utilites.Convert2shPoint(route.Points);

                    shPoint pnt = new shPoint(minDpoint.X, minDpoint.Y);


                    //shPoint pnt = TerrainService.MathEngine.ReturnNearestPointOnPolygonBorder(Dpnt.X, Dpnt.Y, shPoints, out  NearestIndex);
                    if (pnt.x != 0.0 && pnt.y != 0.0)
                    {

                        referencePoint = new DPoint(pnt.x, pnt.y);


                    }


                    double aXOut = 0;
                    double aYOut = 0;

                    aXOut = Math.Round(pnt.x, 3);
                    aYOut = Math.Round(pnt.y, 3);

                    txtReferenceX.Content = aXOut.ToString();
                    txtReferenceY.Content = aYOut.ToString();

                    txtReferenceX.Tag = pnt.x;
                    txtReferenceY.Tag = pnt.y;


                    shPath Path = await clsRoadRoutingWebApi.FindShortPath("0", AtomCommonProperty.X, AtomCommonProperty.Y, pnt.x, pnt.y, false);

                   
                    {
                        ReferenceRoute = new Route();
                        ReferenceRoute.Points=Utilites.Convert2DPoint(Path.Points);

                        VMMainViewModel.Instance.InvalidateVisual();

                    }
                }



               
                checkBoxMapReferencePoint.IsChecked = false;

            }
        }
        public async void MapOnClick(object sender, MapMouseEventArgsWPF e)
        {
            try
            {
                SetHighwayFilter();

                DPoint Dpnt = new DPoint();
                Dpnt.X = e.MapXLongLatWGS84;
                Dpnt.Y = e.MapYLongLatWGS84;

                if (checkBoxMapSource.IsChecked == true)
                {
                    checkBoxMapSource.IsChecked = false;

                    shPoint pnt    = new shPoint();
                    int     nodeid = 0;

                    shPointId PointId = await clsRoadRoutingWebApi.GetNearestPointIdOnRoad("0", highwayFilter, Dpnt.X, Dpnt.Y);

                    if (PointId != null)
                    {
                        pnt    = PointId.point;
                        nodeid = PointId.nodeId;

                        if (pnt.x != 0 || pnt.y != 0)
                        {
                            pntSource.X     = pnt.x;
                            pntSource.Y     = pnt.y;
                            nodeSourceId    = nodeid;
                            txtSourceX.Text = Math.Round(pntSource.X, 4).ToString();
                            txtSourceY.Text = Math.Round(pntSource.Y, 4).ToString();
                        }
                    }



                    //////string err = UserSession.ClientSideObject.m_GameManagerProxy.GetNearestPointIdOnRoad(out pnt,out nodeid,highwayFilter, Dpnt.X, Dpnt.Y);
                    //////if (string.IsNullOrEmpty(err) == false)
                    //////{
                    //////    err = KingsGameClientModel.Properties.Resources.strSpatialServicenotActive;
                    //////    ComponentsUtility.KGMsgBox.ShowCustomMsgOk(UserSession.GetParentWindow(this), err);
                    //////    return;
                    //////}
                    //////else
                    //////{
                    //////    if (pnt.x != 0 || pnt.y != 0)
                    //////    {
                    //////        pntSource.X = pnt.x;
                    //////        pntSource.Y = pnt.y;
                    //////        nodeSourceId = nodeid;
                    //////        txtSourceX.Text = Math.Round(pntSource.X, 4).ToString();
                    //////        txtSourceY.Text = Math.Round(pntSource.Y, 4).ToString();

                    //////    }
                    //////    else
                    //////    {

                    //////    }
                    //////}
                    VMMainViewModel.Instance.InvalidateVisual();
                }
                else if (checkBoxMapTarget.IsChecked == true)
                {
                    checkBoxMapTarget.IsChecked = false;

                    shPoint pnt    = new shPoint();
                    int     nodeid = 0;

                    shPointId PointId = await clsRoadRoutingWebApi.GetNearestRoadNodeWithCondition("0", highwayFilter, Dpnt.X, Dpnt.Y, nodeSourceId, true);

                    if (PointId != null)
                    {
                        pnt    = PointId.point;
                        nodeid = PointId.nodeId;


                        //UserSession.ClientSideObject.m_GameManagerProxy.GetNearestPointOnRoadWithCondition(out pnt, out nodeid,highwayFilter, Dpnt.X, Dpnt.Y, nodeSourceId, true);


                        if (pnt.x != 0 || pnt.y != 0)
                        {
                            pntTarget.X = pnt.x;
                            pntTarget.Y = pnt.y;

                            txtTargetX.Text = Math.Round(pntTarget.X, 4).ToString();
                            txtTargetY.Text = Math.Round(pntTarget.Y, 4).ToString();
                            nodeTargetId    = nodeid;
                        }
                        else
                        {
                        }
                    }


                    VMMainViewModel.Instance.InvalidateVisual();
                }
                else
                {
                    for (int i = 0; i < dtGridRoute.Items.Count; i++)
                    {
                        OsmRouteData DetailData = ((List <OsmRouteData>)dtGridRoute.ItemsSource)[i];
                        if (DetailData.IsMapClick)
                        {
                            DetailData.IsMapClick = false;

                            shPoint pnt = new shPoint();
                            //  string err = UserSession.ClientSideObject.m_GameManagerProxy.GetNearestPointOnRoad(out pnt, Dpnt.X, Dpnt.Y);
                            int nSourceId = 0;
                            if (i == 0)
                            {
                                nSourceId = nodeSourceId;
                            }
                            else
                            {
                                OsmRouteData prevDetailData = ((List <OsmRouteData>)dtGridRoute.ItemsSource)[i - 1];
                                nSourceId = prevDetailData.NodeId;
                            }

                            int nodeid = 0;


                            shPointId PointId = await clsRoadRoutingWebApi.GetNearestRoadNodeWithCondition("0", highwayFilter, Dpnt.X, Dpnt.Y, nSourceId, true);

                            if (PointId != null)
                            {
                                pnt    = PointId.point;
                                nodeid = PointId.nodeId;


                                //  UserSession.ClientSideObject.m_GameManagerProxy.GetNearestPointOnRoadWithCondition(out pnt, out nodeid, highwayFilter, Dpnt.X, Dpnt.Y, nSourceId, true);


                                if (pnt.x != 0 || pnt.y != 0)
                                {
                                    DetailData.X      = pnt.x;
                                    DetailData.Y      = pnt.y;
                                    DetailData.NodeId = nodeid;
                                }
                                else
                                {
                                }
                            }



                            VMMainViewModel.Instance.InvalidateVisual();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
Exemplo n.º 4
0
        public async void MapOnClick(object sender, MapMouseEventArgsWPF e)
        {
            try
            {
                SetHighwayFilter();

                DPoint Dpnt = new DPoint();
                Dpnt.X = e.MapXLongLatWGS84;
                Dpnt.Y = e.MapYLongLatWGS84;

                if (checkBoxMapSource.IsChecked == true)
                {

                    checkBoxMapSource.IsChecked = false;

                    shPoint pnt = new shPoint();
                    int nodeid = 0;

                    shPointId PointId = await clsRoadRoutingWebApi.GetNearestPointIdOnRoad("0", highwayFilter, Dpnt.X, Dpnt.Y);
                    pnt = PointId.point;
                    nodeid = PointId.nodeId;

                    if (pnt.x != 0 || pnt.y != 0)
                    {
                        pntSource.X = pnt.x;
                        pntSource.Y = pnt.y;
                        nodeSourceId = nodeid;
                        txtSourceX.Text = Math.Round(pntSource.X, 4).ToString();
                        txtSourceY.Text = Math.Round(pntSource.Y, 4).ToString();

                    }

                    VMMainViewModel.Instance.InvalidateVisual();

                   
                }
                else if (checkBoxMapTarget.IsChecked == true)
                {

                    checkBoxMapTarget.IsChecked = false;

                    shPoint pnt = new shPoint();
                    int nodeid = 0;

                    shPointId PointId = await clsRoadRoutingWebApi.GetNearestRoadNodeWithCondition("0", highwayFilter, Dpnt.X, Dpnt.Y, nodeSourceId, true);
                    pnt = PointId.point;
                    nodeid = PointId.nodeId;


                    //UserSession.ClientSideObject.m_GameManagerProxy.GetNearestPointOnRoadWithCondition(out pnt, out nodeid,highwayFilter, Dpnt.X, Dpnt.Y, nodeSourceId, true);


                    if (pnt.x != 0 || pnt.y != 0)
                    {
                        pntTarget.X = pnt.x;
                        pntTarget.Y = pnt.y;

                        txtTargetX.Text = Math.Round(pntTarget.X, 4).ToString();
                        txtTargetY.Text = Math.Round(pntTarget.Y, 4).ToString();
                        nodeTargetId = nodeid;
                    }
                    else
                    {

                    }


                    VMMainViewModel.Instance.InvalidateVisual();
                }
                else
                {
                    for (int i = 0; i < dtGridRoute.Items.Count; i++)
                    {
                        OsmRouteData DetailData = ((List<OsmRouteData>)dtGridRoute.ItemsSource)[i];
                        if (DetailData.IsMapClick)
                        {
                            DetailData.IsMapClick = false;

                            shPoint pnt = new shPoint();
                            //  string err = UserSession.ClientSideObject.m_GameManagerProxy.GetNearestPointOnRoad(out pnt, Dpnt.X, Dpnt.Y);
                            int nSourceId = 0;
                            if (i == 0)
                            {
                                nSourceId = nodeSourceId;
                            }
                            else
                            {
                                OsmRouteData prevDetailData = ((List<OsmRouteData>)dtGridRoute.ItemsSource)[i - 1];
                                nSourceId = prevDetailData.NodeId;
                            }

                            int nodeid = 0;


                            shPointId PointId = await clsRoadRoutingWebApi.GetNearestRoadNodeWithCondition("0", highwayFilter, Dpnt.X, Dpnt.Y, nSourceId, true);
                            pnt = PointId.point;
                            nodeid = PointId.nodeId;


                            //  UserSession.ClientSideObject.m_GameManagerProxy.GetNearestPointOnRoadWithCondition(out pnt, out nodeid, highwayFilter, Dpnt.X, Dpnt.Y, nSourceId, true);


                            if (pnt.x != 0 || pnt.y != 0)
                            {
                                DetailData.X = pnt.x;
                                DetailData.Y = pnt.y;
                                DetailData.NodeId = nodeid;

                            }
                            else
                            {

                            }


                            VMMainViewModel.Instance.InvalidateVisual();
                        }
                    }
                }
            }
            catch (Exception ex)
            {

            }
        }
Exemplo n.º 5
0
        public async void MapOnClick(object sender, MapMouseEventArgsWPF e)
        {
            if (checkBoxMapReferencePoint.IsChecked == true && string.IsNullOrEmpty(txtRoute.Text) == false)
            {
                txtReferenceX.Tag = null;
                referencePoint    = new DPoint();


                DPoint Dpnt = new DPoint();
                Dpnt.X = e.MapXLongLatWGS84;
                Dpnt.Y = e.MapYLongLatWGS84;

                Route route = await SAGSignalR.GetRouteByName(VMMainViewModel.Instance.SimulationHubProxy, txtRoute.Text);

                ActivityRoute = route;
                if (route != null)
                {
                    double minDist   = double.MaxValue;
                    DPoint minDpoint = new DPoint();
                    int    leg       = 0;
                    int    i         = -1;
                    foreach (DPoint dpoint in route.Points)
                    {
                        i++;
                        double dist = Utilites.GreatCircleDistance(Dpnt.X, Dpnt.Y, dpoint.X, dpoint.Y);
                        if (dist < minDist)
                        {
                            minDist   = dist;
                            minDpoint = dpoint;
                            leg       = i;
                        }
                    }



                    float NearestIndex = 0;
                    // shPoint[] shPoints = Utilites.Convert2shPoint(route.Points);

                    shPoint pnt = new shPoint(minDpoint.X, minDpoint.Y);


                    //shPoint pnt = TerrainService.MathEngine.ReturnNearestPointOnPolygonBorder(Dpnt.X, Dpnt.Y, shPoints, out  NearestIndex);
                    if (pnt.x != 0.0 && pnt.y != 0.0)
                    {
                        referencePoint = new DPoint(pnt.x, pnt.y);
                    }


                    double aXOut = 0;
                    double aYOut = 0;

                    aXOut = Math.Round(pnt.x, 3);
                    aYOut = Math.Round(pnt.y, 3);

                    txtReferenceX.Content = aXOut.ToString();
                    txtReferenceY.Content = aYOut.ToString();

                    txtReferenceX.Tag = pnt.x;
                    txtReferenceY.Tag = pnt.y;


                    shPath Path = await clsRoadRoutingWebApi.FindShortPath("0", AtomCommonProperty.X, AtomCommonProperty.Y, pnt.x, pnt.y, false);


                    {
                        ReferenceRoute        = new Route();
                        ReferenceRoute.Points = Utilites.Convert2DPoint(Path.Points);

                        VMMainViewModel.Instance.InvalidateVisual();
                    }
                }



                checkBoxMapReferencePoint.IsChecked = false;
            }
        }