ThinkGeo.com    |     Documentation    |     Premium Support

Create Triangle on Point

Dear All,


I have a Lat Long Point like (28.571880,77.333780). I want to create a triangle on the point which structure is like below. I also want to fire an event on click on triangle so that we can so the property page for triangle. The triangle structure is like below.



Please suggest.


 



Hi Sanjay,


Here is the code to get the polygon



        PolygonShape GenerateTriangle(PointShape point)
        {
            double heightInMeter = Math.Sqrt(224);

            Proj4Projection proj = new Proj4Projection();
            proj.InternalProjectionParametersString = Proj4Projection.GetEpsgParametersString(4326);
            proj.ExternalProjectionParametersString = Proj4Projection.GetGoogleMapParametersString();
            proj.Open();

            PointShape pointInMeter = proj.ConvertToExternalProjection(point) as PointShape;

            PolygonShape polygon = new PolygonShape();
            polygon.OuterRing.Vertices.Add(new Vertex(pointInMeter));
            polygon.OuterRing.Vertices.Add(new Vertex(pointInMeter.X - 1, pointInMeter.Y - heightInMeter));
            polygon.OuterRing.Vertices.Add(new Vertex(pointInMeter.X + 1, pointInMeter.Y - heightInMeter));
            polygon.OuterRing.Vertices.Add(new Vertex(pointInMeter));
            return polygon;
        }

And you can put it in an InMemoryFeatureLayer, and when clicking on the map, call the layer.QueryTools.GetFeaturesContaining to get the feature you clicked on.


Regards,


Edgar



Dear Edgar,


Thanks for reply,


I have worked according your suggestion, but its not showing the triangle, I don't find any reason, please check the attached code. Its working without error, but not showing any triangle


 


Regards


 


 


 



Sanjay, 
  
 You map unit is Decimal degree, but the triangle’s unit is meter, so you have to convert it to decimal degree first and return it. 
  
 Regards, 
 Edgar 


Dear Edgar,


Thanks for reply,


My Mapunit is already in Meter, but now the triangle is loaded on map, but it looks like very big, the triangle height is 15 m.



Please help


Regards


Sanjay



Sanjay,


Maybe there is something wrong with your code about the projection, could you plese provide your code to us the have a look?


Thanks,


Edgar



Dear Edgar, 
  
 Thanks for reply, 
  
 I set the value (height and width) triangle as  per scale, now its working for me. 
  
 Thanks for help. 
 Sanjay

Sanjay, 
  
 Glad to hear that it’s working, if you have any questions please let us know. 
  
 Regards, 
 Edgar

Dear Edgar,


After plotting triangle, I plotted rectangle on the Lat, long point of triangle, but as per feature, when I try to plot rectangle, rectangle takes point (Upper left point, Lower right point) and plotted it. Again Next rectangle will plot above rectangle. The number of rectangle will be plotted, based on database value.


Here I am putting the resulted map



And my desired map will be



Here I am attaching my code, please look and guide me the best option to achieve the requirement. I also will click on each and every rectangle and will get value on click on rectangle.


Thanks


Sanjay



001_Tower.txt (8.54 KB)

 Hello  Sanjay


 
Thanks for your further information, it's a validate bug and we have fixed it.
 
Please get the latest version 2.0.0.264 or 2.0.264.0 and try the code attached.
 
Hope it helps.
 
Regards,
 
Gary
 

Post10999.txt (9.11 KB)

Dear Gary, 
  
 Thanks for reply, 
  
 Actually currently I am using 5.0.109.0 where I will get 2.0.0.264. 
  
 Regards 
 Sanjay

Hello Sanjay, 
  
 Sorry for my mistake, I mean 6.0.264.0 or 6.0.0.264, this is the newest version(in that day, now the version is 266) and you can get it from helpdesk.thinkgeo.com
  
 And if you are upgrade from 5.0, there is something you need noticed, 6.0.266.0 is our development branch and 6.0.0.266 is our release branch, for now, the difference between these two branches is development branch using .net 4.0 and release branch keep using .clear 3.5 as MapSuite 5.0, so if you’d like to upgrade the .net framework too, you can choose development branch if not you can choose release branch. 
  
 Please feel free to let us know if you have any queries. 
  
 Regards, 
  
 Gary