//----------------------------------------------------------------
 // Set a path point
 //----------------------------------------------------------------
 public void setPathPoint(double lat, double lng, string groupName)
 {
     treasureWS.TreasureWS treasure = new treasureWS.TreasureWS();
     treasureWS.Point      point    = new treasureWS.Point();
     point.Lat = lat;
     point.Lng = lng;
     treasure.setPathPoint(point, groupName);
 }
    //------------------------------------------------
    // Get the list of the POI along the path
    //------------------------------------------------
    public string getPOIList(string groupName)
    {
        treasureWS.TreasureWS treasure = new treasureWS.TreasureWS();
        treasureWS.POI[]      poiArr   = treasure.getPOIList(groupName);
        JavaScriptSerializer  js       = new JavaScriptSerializer();
        string jsonString = js.Serialize(poiArr);

        return(jsonString);
    }
    //------------------------------------------------
    // Get the target point for a specific group
    //------------------------------------------------
    public string getTarget(string groupName)
    {
        treasureWS.TreasureWS treasure = new treasureWS.TreasureWS();
        treasureWS.Point      point    = treasure.getTarget(groupName);
        JavaScriptSerializer  js       = new JavaScriptSerializer();
        string jsonString = js.Serialize(point);

        return(jsonString);
    }
    //--------------------------------------------------------------------------
    // Set a target group for a specific point
    //--------------------------------------------------------------------------
    public string setTarget(double lat, double lng, string groupName)
    {
        treasureWS.TreasureWS treasure = new treasureWS.TreasureWS();
        treasureWS.Point      point    = new treasureWS.Point();
        point.Lat = lat;
        point.Lng = lng;
        treasure.setTargetPoint(point, groupName);
        JavaScriptSerializer js = new JavaScriptSerializer();
        string jsonString       = js.Serialize("ok");

        return(jsonString);
    }
    //------------------------------------------------
    //------------------------------------------------
    public string GetChallenge(double lat, double lng, string groupName)
    {
        treasureWS.TreasureWS treasure = new treasureWS.TreasureWS();
        treasureWS.Point      point    = new treasureWS.Point();
        point.Lat = lat;
        point.Lng = lng;
        //treasure.setTargetPoint(point, groupName);
        treasureWS.Challenge chal = treasure.GetChallenge(point, groupName);
        JavaScriptSerializer js   = new JavaScriptSerializer();
        string jsonString         = js.Serialize(chal);

        return(jsonString);
    }
 //--------------------------------------------------------------------------
 // Get the distance of the point for a specific group from the target point
 //--------------------------------------------------------------------------
 public string getDistance(double lat, double lng, string groupName)
 {
     try
     {
         treasureWS.TreasureWS treasure = new treasureWS.TreasureWS();
         treasureWS.Point      point    = new treasureWS.Point();
         point.Lat = lat;
         point.Lng = lng;
         double dist = treasure.getDistance(point, groupName);
         treasure.setPathPoint(point, groupName);
         JavaScriptSerializer js = new JavaScriptSerializer();
         string jsonString       = js.Serialize(dist);
         return(jsonString);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
    //------------------------------------------------------
    // Set a Point Of Interst (POI) for a specific group
    //------------------------------------------------------
    public string setPOI(double lat, double lng, string groupName, string name, string description, string imageUrl)
    {
        treasureWS.TreasureWS treasure = new treasureWS.TreasureWS();
        treasureWS.POI        poi      = new treasureWS.POI();
        poi.P           = new treasureWS.Point();
        poi.P.Lat       = lat;
        poi.P.Lng       = lng;
        poi.Name        = name;
        poi.Description = description;
        poi.ImageUrl    = imageUrl;
        JavaScriptSerializer js = new JavaScriptSerializer();
        string jsonString       = js.Serialize("ok");

        try
        {
            treasure.setPOI(poi, groupName);
            jsonString = js.Serialize("ok");
        }
        catch (Exception ex) {
            jsonString = js.Serialize("error in treasure.setPOI --- " + ex.Message);
        }

        return(jsonString);
    }