ThinkGeo.com    |     Documentation    |     Premium Support

Place two points on shapefile by clicking on it for routing

i have used sample method simplemarker overlayer. but it doesnot give the desired result. i want to add two point on shapefile by clicking on it and when it clicked its world coordinates saved in variable. 



Hi Sarah,


Can you clearify your requirements a bit, as far as i guessed, the anwser can be checked at gis.thinkgeo.com/Support/Dis...fault.aspx.


Any questions or problems please let us know.


Thanks,

Johnny



Also, please use InMemoryMarkerOverlay instead, seems like there is a bug in SimpleMarkerOverlay, we are still working on it. 
  
 Thanks, 
 Johnny

kindly tell me where i am wrong i used this way to get points and its coordinates.  but when i assigned this user1 to routing layer startpoint like this


 routingLayer.StartPoint = user1;

            routingLayer.EndPoint = user2;


it gives error of null point. as i debug my code an see that user1 and user2 has coordinates but it cannot assigned to startpoint and end point


 


InMemoryFeatureLayer points = (InMemoryFeatureLayer)winformsMap1.FindFeatureLayer("points");



           // RoutingLayer routingLayer = (RoutingLayer)winformsMap1.FindFeatureLayer("RoutingLayer");

          

            PointShape point = new PointShape(e.WorldX, e.WorldY);

            Feature p = new Feature(point.GetWellKnownBinary(), "position");

            points.FeatureSource.BeginTransaction();

            if (!points.InternalFeatures.Contains("position"))

            {

                points.FeatureSource.AddFeature(new PointShape( p.WellKnownBinary));

                if(user1== null)

                {

                  user1 = new PointShape(p.WellKnownBinary);

                  

                    

                  

                }

                else if(user2 == null)

                {

                    user2 = new PointShape(p.WellKnownBinary);

                    

                    

                }



Sarah,


Seems nohing wrong in your code, maybe there are some issues in other places. Can you please provide us a simple sample instead of code snippet to recreate your issue?


Thanks,


Edgar



may i send you my whole code because still i cannot figure out my problem. give me any email id 



Hello Sarah, 
  
 You can send to forumsupport@thinkgeo.com
  
 Regards, 
  
 Gary

i have send my code on the given address Gray



Hello forum,


Did you check my code?  i have send on the given address 


Regards,


 


sarah



Hello Sarah, 
  
 Thanks for your code, we got it and we are working on it, once we have a solution, we will post here asap. 
  
 Sorry for the inconvenience. 
  
 Regards, 
  
 Gary

Thanks Gray i am really waiting for the solution



Hi Sarah,


You need to change your method to this:



 private void winformsMap1_MapClick(object sender, MapClickWinformsMapEventArgs e)
        {
            InMemoryFeatureLayer points = (InMemoryFeatureLayer)winformsMap1.FindFeatureLayer("points");

            PointShape point = new PointShape(e.WorldX, e.WorldY);
            Feature p = new Feature(point.GetWellKnownBinary(), "position");
            points.FeatureSource.BeginTransaction();
            if (!points.InternalFeatures.Contains("position"))
            {
                RoutingLayer routingLayer = (RoutingLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"];
                points.InternalFeatures.Add(p);
                if (user1 == null)
                {
                    user1 = point;
                    routingLayer.StartPoint = user1;
                }
                else if (user2 == null)
                {
                    user2 = point;
                    routingLayer.EndPoint = user2;
                }
                else
                {
                    goal = new PointShape(p.WellKnownBinary);
                }
            }
            points.FeatureSource.CommitTransaction();
            winformsMap1.Refresh();
        }

Regards,


Edgar


 



Thanks a bundle edgar


 



Sarah,


You're welcome, please feel free to let us know your problem.


Regards,


Edgar