1

I'm trying to send a few polygons from a controller to a ajax request on the view. I'm using gmaps.js on client side. And I'm trying to follow the GeoJson specs for polygon object. Here is my raw object:

[
    {
        "type" : "POLYGON",
        "id" : null,
        "geometry" : 
            [
                [
                    [25.24718989858574, 55.34980773925781], 
                    [25.24715108267782, 55.34893870353699], 
                    [25.24763628063545, 55.34891724586487], 
                    [25.247869174966873, 55.34907817840576], 
                    [25.247869174966873, 55.34965753555298], 
                    [25.24767509638834, 55.34981846809387]
                ]
            ]
    }, 
    {
        "type" : "POLYGON",
        "id" : null,
        "geometry" : 
            [
                [
                    [25.248684301611156, 55.34983992576599], 
                    [25.248480520462763, 55.349721908569336], 
                    [25.24788858280767, 55.34993648529053], 
                    [25.247578056982842, 55.35008668899536], 
                    [25.247354866056035, 55.35041928291321], 
                    [25.246830850964393, 55.35105228424072], 
                    [25.2466755867995, 55.35133123397827], 
                    [25.24611275253863, 55.35210371017456], 
                    [25.24532672101826, 55.353219509124756], 
                    [25.24626801742273, 55.35389542579651], 
                    [25.24648150631442, 55.354024171829224], 
                    [25.248655190039447, 55.3501296043396]
                ]
            ]
    }, 
    {
        "type" : "POLYGON",
        "id" : null,
        "geometry" : 
            [
                [
                    [25.246190385005487, 55.35040855407715], 
                    [25.246190385005487, 55.35080552101135], 
                    [25.246374761915458, 55.35084843635559], 
                    [25.24653002646476, 55.35092353820801], 
                    [25.24661736268653, 55.35104155540466], 
                    [25.24703463487969, 55.350472927093506], 
                    [25.246918186969957, 55.35039782524109]
                ]
            ]
    }, 
    {
        "type" : "POLYGON",
        "id" : null,
        "geometry" : 
            [
                [
                    [25.24541891016349, 55.350982546806335], 
                    [25.24540920604625, 55.35240948200226], 
                    [25.24495311166098, 55.352463126182556], 
                    [25.244967667891192, 55.350998640060425]
                ]
            ]
    }, 
    {
        "type" : "POLYGON",
        "id" : null,
        "geometry" : 
            [
                [
                    [25.245229679737204, 55.35044610500336], 
                    [25.245244235934287, 55.35085916519165], 
                    [25.246098196445583, 55.35085916519165], 
                    [25.24614671674897, 55.3508323431015], 
                    [25.24614671674897, 55.35039246082306], 
                    [25.24603997205592, 55.35036027431488]
                ]
            ]
    }
]

To represent one polygon, I have this class on server side:

public class TempPolygon
{
    public string Type { get; set; }
    public string Id { get; set; }
    public List<Tuple<decimal, decimal>> Geometry { get; set; }

    public TempPolygon()
    {
        Type = "POLYGON";
        Id = null;
    }
}

Now the action will return a List<TempPolygon> as JsonResult but I'm not able to figure out if my definition of the TempPolygon class is correctly reflecting the GeoJson. Also if I paste the Json on http://json2csharp.com/, I get this class:

public class RootObject
{
    public string type { get; set; }
    public object id { get; set; }
    public List<List<List<double>>> geometry { get; set; }
}

The List<List<List<double>>> makes no sense as clearly, latitude and longitude are pairs. How do i define my class's Geometry property to reflect the specs of GeoJson

DoomerDGR8
  • 4,840
  • 6
  • 43
  • 91

0 Answers0