亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? datum.c

?? 給予QT的qps開源最新源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
      {
        error_code |= DATUM_7PARAM_OVERFLOW_ERROR;
      }
    }
    fclose(fp_7param);
    Datum_7Param_Count = index;
    index = 0;

    while ((!feof(fp_3param)) && (!error_code))
    {
      if (index < MAX_3PARAM)
      { /* build 3-parameter datum table entries */
        if (fscanf(fp_3param, "%s ", Datum_Table_3Param[index].Code) <= 0)
          error_code |= DATUM_3PARAM_FILE_PARSING_ERROR;
		else
		{
		  if (Datum_Table_3Param[index].Code[0] == '*')
		  {
			long i;
			Datum_Table_3Param[index].User_Defined = TRUE;
		    for (i = 0; i < DATUM_CODE_LENGTH; i++)
			  Datum_Table_3Param[index].Code[i] = Datum_Table_3Param[index].Code[i+1];
		  }
		  else
		    Datum_Table_3Param[index].User_Defined = FALSE;
		}
        if (fscanf(fp_3param, "\"%32[^\"]\"", Datum_Table_3Param[index].Name) <= 0)
          Datum_Table_3Param[index].Name[0] = '\0';
        if (fscanf(fp_3param, " %s %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf ",
                   Datum_Table_3Param[index].Ellipsoid_Code,
                   &(Datum_Table_3Param[index].Parameters[0]),
                   &(Datum_Table_3Param[index].Sigma_X),
                   &(Datum_Table_3Param[index].Parameters[1]),
                   &(Datum_Table_3Param[index].Sigma_Y),
                   &(Datum_Table_3Param[index].Parameters[2]),
                   &(Datum_Table_3Param[index].Sigma_Z),
                   &(Datum_Table_3Param[index].South_latitude),
                   &(Datum_Table_3Param[index].North_latitude),
                   &(Datum_Table_3Param[index].West_longitude),
                   &(Datum_Table_3Param[index].East_longitude)) <= 0)
        {
          error_code |= DATUM_3PARAM_FILE_PARSING_ERROR;
        }
        else
        {
          Datum_Table_3Param[index].Parameters[3] = 0.0;
          Datum_Table_3Param[index].Parameters[4] = 0.0;
          Datum_Table_3Param[index].Parameters[5] = 0.0;
          Datum_Table_3Param[index].Parameters[6] = 1.0;
          Datum_Table_3Param[index].South_latitude *= (PI / 180.0);
          Datum_Table_3Param[index].North_latitude *= (PI / 180.0);
          Datum_Table_3Param[index].West_longitude *= (PI / 180.0);
          Datum_Table_3Param[index].East_longitude *= (PI / 180.0);
          Datum_Table_3Param[index].Type = Three_Param_Datum;
        }
        index++;
      }
      else
      {
        error_code |= DATUM_3PARAM_OVERFLOW_ERROR;
      }
    }
    fclose(fp_3param);
    Datum_3Param_Count = index;

    /* Initialize array of pointers to datums */
    if (!error_code)
    {
      /* set total number of datums available */
      Number_of_Datums = Datum_3Param_Count + Datum_7Param_Count + 2;

      /* build WGS84 and WGS72 datum table entries */
      WGS84.Type = WGS84_Datum;
      strcpy(WGS84.Name,"World Geodetic System 1984");
      strcpy(WGS84.Code,"WGE");
      strcpy(WGS84.Ellipsoid_Code,"WE");
      WGS72.Type = WGS72_Datum;
      strcpy(WGS72.Name,"World Geodetic System 1972");
      strcpy(WGS72.Code,"WGC");
      strcpy(WGS72.Ellipsoid_Code,"WD");
      for (i=0; i<6; i++)
      {
        WGS84.Parameters[i] = 0.0;
        WGS72.Parameters[i] = 0.0;
      }
      WGS84.Parameters[6] = 1.0;
      WGS72.Parameters[6] = 1.0;

      WGS84.Sigma_X = 0.0;
      WGS84.Sigma_Y = 0.0;
      WGS84.Sigma_Z = 0.0;
      WGS84.South_latitude = -PI / 2.0;
      WGS84.North_latitude = +PI / 2.0;
      WGS84.West_longitude = -PI;
      WGS84.East_longitude = +PI;

      WGS72.Sigma_X = 0.0;
      WGS72.Sigma_Y = 0.0;
      WGS72.Sigma_Z = 0.0;
      WGS72.South_latitude = -PI / 2.0;
      WGS72.North_latitude = +PI / 2.0;
      WGS72.West_longitude = -PI;
      WGS72.East_longitude = +PI;

      Datum_WGS84_Index = 1;
      Datum_Table[Datum_WGS84_Index - 1] = &WGS84;
      Datum_WGS72_Index = 2;
      Datum_Table[Datum_WGS72_Index - 1] = &WGS72;
      index = 2;
      for (i = 0; i < Datum_7Param_Count; i++)
      {
        Datum_Table[index++] = &(Datum_Table_7Param[i]);
      }
      for (i = 0; i < Datum_3Param_Count; i++)
      {
        Datum_Table[index++] = &(Datum_Table_3Param[i]);
      }

      if (error_code)
      {
        error_code |= DATUM_ELLIPSE_ERROR;
        Datum_Initialized = 0;
        Number_of_Datums = 0;
      }
      else
        Datum_Initialized = 1;      
    }
  }
  return (error_code);
} /* End Initialize_Datums */


long Create_Datum ( const char *Code,
                    const char *Name,
                    const char *Ellipsoid_Code,
                    double Delta_X,
                    double Delta_Y,
                    double Delta_Z,
                    double Sigma_X,
                    double Sigma_Y,
                    double Sigma_Z,
                    double South_latitude,
                    double North_latitude,
                    double West_longitude,
                    double East_longitude)
{ /* Begin Create_Datum */
/*
 *   Code           : 5-letter new datum code.                      (input)
 *   Name           : Name of the new datum                         (input)
 *   Ellipsoid_Code : 2-letter code for the associated ellipsoid    (input)
 *   Delta_X        : X translation to WGS84 in meters              (input)
 *   Delta_Y        : Y translation to WGS84 in meters              (input)
 *   Delta_Z        : Z translation to WGS84 in meters              (input)
 *   Sigma_X        : Standard error in X in meters                 (input)
 *   Sigma_Y        : Standard error in Y in meters                 (input)
 *   Sigma_Z        : Standard error in Z in meters                 (input)
 *   South_latitude : Southern edge of validity rectangle in radians(input)
 *   North_latitude : Northern edge of validity rectangle in radians(input)
 *   West_longitude : Western edge of validity rectangle in radians (input)
 *   East_longitude : Eastern edge of validity rectangle in radians (input)
 *
 * The function Create_Datum creates a new local (3-parameter) datum with the 
 * specified code, name, and axes.  If the datum table has not been initialized,
 * the specified code is already in use, or a new version of the 3-param.dat 
 * file cannot be created, an error code is returned, otherwise DATUM_NO_ERROR 
 * is returned.  Note that the indexes of all datums in the datum table may be 
 * changed by this function.
 */
  char datum_Code[DATUM_CODE_LENGTH];
  long error_code = DATUM_NO_ERROR;
  long index = 0;
  long ellipsoid_index = 0;
  long code_length = 0;
  char datum_name[DATUM_NAME_LENGTH+2];
  char *PathName;
  char FileName[FILENAME_LENGTH];
  FILE *fp_3param = NULL;

  if (!Datum_Initialized)
    error_code |= DATUM_NOT_INITIALIZED_ERROR;
  if (!(Datum_3Param_Count < MAX_3PARAM))
    error_code |= DATUM_3PARAM_OVERFLOW_ERROR;
  if (!(((Sigma_X > 0.0) || (Sigma_X == -1.0)) &&
        ((Sigma_Y > 0.0) || (Sigma_Y == -1.0)) &&
        ((Sigma_Z > 0.0) || (Sigma_Z == -1.0))))
    error_code |= DATUM_SIGMA_ERROR;
  if ((South_latitude < MIN_LAT) || (South_latitude > MAX_LAT))
    error_code |= DATUM_LAT_ERROR;
  if ((West_longitude < MIN_LON) || (West_longitude > MAX_LON))
    error_code |= DATUM_LON_ERROR;
  if ((North_latitude < MIN_LAT) || (North_latitude > MAX_LAT))
    error_code |= DATUM_LAT_ERROR;
  if ((East_longitude < MIN_LON) || (East_longitude > MAX_LON))
    error_code |= DATUM_LON_ERROR;
  if ((South_latitude >= North_latitude) || (West_longitude >= East_longitude))
    error_code |= DATUM_DOMAIN_ERROR;
  code_length = strlen(Code);
  if ((!Datum_Index(Code, &index)) || (code_length > (DATUM_CODE_LENGTH-1)))
    error_code |= DATUM_INVALID_CODE_ERROR;
  if (Ellipsoid_Index(Ellipsoid_Code, &ellipsoid_index))
    error_code |= DATUM_ELLIPSE_ERROR;
  if (!error_code)
  {
    long i;
    strcpy(datum_Code,Code);
    /* Convert code to upper case */
    for (i = 0; i < code_length; i++)
      datum_Code[i] = (char)toupper(datum_Code[i]);
    index = Datum_3Param_Count;
    strcpy(Datum_Table_3Param[index].Code, datum_Code);
    strcpy(Datum_Table_3Param[index].Name, Name);
    strcpy(Datum_Table_3Param[index].Ellipsoid_Code, Ellipsoid_Code);
    Datum_Table_3Param[index].Parameters[0] = Delta_X;
    Datum_Table_3Param[index].Parameters[1] = Delta_Y;
    Datum_Table_3Param[index].Parameters[2] = Delta_Z;
    Datum_Table_3Param[index].Parameters[3] = 0.0;
    Datum_Table_3Param[index].Parameters[4] = 0.0;
    Datum_Table_3Param[index].Parameters[5] = 0.0;
    Datum_Table_3Param[index].Parameters[6] = 1.0;
    Datum_Table_3Param[index].Sigma_X = Sigma_X;
    Datum_Table_3Param[index].Sigma_Y = Sigma_Y;
    Datum_Table_3Param[index].Sigma_Z = Sigma_Z;
    Datum_Table_3Param[index].South_latitude = South_latitude;
    Datum_Table_3Param[index].North_latitude = North_latitude;
    Datum_Table_3Param[index].West_longitude = West_longitude;
    Datum_Table_3Param[index].East_longitude = East_longitude;
    Datum_Table_3Param[index].Type = Three_Param_Datum;
    Datum_Table_3Param[index].User_Defined = TRUE;
    Datum_Table[Number_of_Datums] = &(Datum_Table_3Param[index]);
    Datum_3Param_Count++;
    Number_of_Datums++;

    /*output updated 3-parameter datum table*/
    PathName = getenv( "DATUM_DATA" );
    if (PathName != NULL)
    {
      strcpy( FileName, PathName );
      strcat( FileName, "/" );
    }
    else
    {
      strcpy( FileName, "./" );
    }
    strcat( FileName, "3_param.dat" );

    if ((fp_3param = fopen(FileName, "w")) == NULL)
    { /* fatal error */
      return DATUM_3PARAM_FILE_OPEN_ERROR;
    }

    /* write file */
    index = 0;
    while (index < Datum_3Param_Count)
    {
      strcpy( datum_name, "\"" );
      strcat( datum_name, Datum_Table_3Param[index].Name);
      strcat( datum_name, "\"" );
      if (Datum_Table_3Param[index].User_Defined)
        fprintf(fp_3param, "*%-6s %-33s%-2s %4.0f %4.0f %4.0f %4.0f %5.0f %4.0f %4.0f %4.0f %4.0f %4.0f \n",
                Datum_Table_3Param[index].Code,
                datum_name,
                Datum_Table_3Param[index].Ellipsoid_Code,
                Datum_Table_3Param[index].Parameters[0],
                Datum_Table_3Param[index].Sigma_X, 
                Datum_Table_3Param[index].Parameters[1],
                Datum_Table_3Param[index].Sigma_Y, 
                Datum_Table_3Param[index].Parameters[2],
                Datum_Table_3Param[index].Sigma_Z,
                (Datum_Table_3Param[index].South_latitude * 180.0 / PI),
                (Datum_Table_3Param[index].North_latitude * 180.0 / PI),
                (Datum_Table_3Param[index].West_longitude * 180.0 / PI),
                (Datum_Table_3Param[index].East_longitude * 180.0 / PI));
      else
        fprintf(fp_3param, "%-6s  %-33s%-2s %4.0f %4.0f %4.0f %4.0f %5.0f %4.0f %4.0f %4.0f %4.0f %4.0f \n",
                Datum_Table_3Param[index].Code,
                datum_name,
                Datum_Table_3Param[index].Ellipsoid_Code,
                Datum_Table_3Param[index].Parameters[0],
                Datum_Table_3Param[index].Sigma_X, 
                Datum_Table_3Param[index].Parameters[1],
                Datum_Table_3Param[index].Sigma_Y, 
                Datum_Table_3Param[index].Parameters[2],
                Datum_Table_3Param[index].Sigma_Z,
                (Datum_Table_3Param[index].South_latitude * 180.0 / PI),
                (Datum_Table_3Param[index].North_latitude * 180.0 / PI),
                (Datum_Table_3Param[index].West_longitude * 180.0 / PI),
                (Datum_Table_3Param[index].East_longitude * 180.0 / PI));

      index++;
    }
    fclose(fp_3param);
  }
  return (error_code);
} /* End Create_Datum */

long Delete_Datum (const char *Code)

{ /* Begin Delete_Datum */
/*
 *   Code           : 5-letter datum code.                      (input)
 *
 * The function Delete_Datum deletes a local (3-parameter) datum with the 
 * specified code.  If the datum table has not been initialized or a new 
 * version of the 3-param.dat file cannot be created, an error code is returned,  
 * otherwise DATUM_NO_ERROR is returned.  Note that the indexes of all datums 
 * in the datum table may be changed by this function.
 */

  char *PathName;
  char FileName[FILENAME_LENGTH];
  char datum_name[DATUM_NAME_LENGTH+2];
  FILE *fp_3param = NULL;
  long index = 0;
  long error_code = DATUM_NO_ERROR;

  if (!Datum_Initialized)
    error_code |= DATUM_NOT_INITIALIZED_ERROR;
  else
  {
    if (!Datum_3Param_Index(Code, &index))
    {
      if (!Datum_Table_3Param[index-1].User_Defined)
        error_code |= DATUM_NOT_USERDEF_ERROR;
    }
    else
      error_code |= DATUM_NOT_USERDEF_ERROR;
  }
  if (!error_code)
  {
    long i = 0;
    long count = 0;

    for (i = index-1; i < Datum_3Param_Count-1; i++)
      Datum_Table_3Param[i] = Datum_Table_3Param[i+1];

    if (Datum_3Param_Count != MAX_3PARAM)
      Datum_Table_3Param[i] = Datum_Table_3Param[i+1];
    else
    {
      Datum_Table_3Param[i].Type = ' ';
      strcpy(Datum_Table_3Param[i].Code, "");
      strcpy(Datum_Table_3Param[i].Name, "");
      strcpy(Datum_Table_3Param[i].Ellipsoid_Code, "");
      Datum_Table_3Param[i].Parameters[0] = 0;
      Datum_Table_3Param[i].Parameters[1] = 0;
      Datum_Table_3Param[i].Parameters[2] = 0;
      Datum_Table_3Param[i].Parameters[3] = 0;
      Datum_Table_3Param[i].Parameters[4] = 0;
      Datum_Table_3Param[i].Parameters[5] = 0;
      Datum_Table_3Param[i].Parameters[6] = 0;
      Datum_Table_3Param[i].Sigma_X = 0;
      Datum_Table_3Param[i].Sigma_Y = 0;
      Datum_Table_3Param[i].Sigma_Z = 0;
      Datum_Table_3Param[i].West_longitude = 0;
      Datum_Table_3Param[i].East_longitude = 0;
      Datum_Table_3Param[i].South_latitude = 0;
      Datum_Table_3Param[i].North_latitude = 0;
      Datum_Table_3Param[i].User_Defined = ' ';

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久久久久久99水蜜桃| 99免费精品视频| 亚洲欧洲av一区二区三区久久| 五月天丁香久久| 欧美日韩国产大片| 午夜激情久久久| 亚洲精品在线观看视频| 美国一区二区三区在线播放| 91精品国产综合久久精品app | 偷拍与自拍一区| 欧美日韩精品是欧美日韩精品| 热久久久久久久| 久久久久青草大香线综合精品| 国产原创一区二区三区| 中文字幕色av一区二区三区| 欧美理论片在线| 国产美女一区二区三区| 亚洲综合在线电影| 91一区在线观看| 午夜在线成人av| 日韩久久精品一区| 日本伊人色综合网| 91麻豆精品在线观看| 亚洲乱码中文字幕综合| 日韩欧美的一区二区| 久久亚洲欧美国产精品乐播| 日韩高清在线不卡| 成人午夜av在线| 日韩三级伦理片妻子的秘密按摩| 亚洲国产中文字幕在线视频综合| 粉嫩在线一区二区三区视频| 久久久久久97三级| 国产成人精品1024| 日本一二三不卡| 岛国精品一区二区| 日本免费新一区视频| 国产精品高清亚洲| 久久久国产午夜精品| 日韩免费视频一区二区| 欧美精品日韩精品| 在线观看日韩毛片| 99精品一区二区| 福利一区二区在线观看| 国产福利91精品一区二区三区| 精品一区二区影视| 激情综合网天天干| 91在线精品一区二区| 欧美日韩综合色| 欧美日韩不卡一区| 日韩一区二区三区在线视频| 欧美精品一区二区高清在线观看| 日韩三级免费观看| 国产欧美综合在线| 亚洲国产成人av网| 国产91精品精华液一区二区三区| 国产剧情av麻豆香蕉精品| www.日韩在线| 欧美色手机在线观看| 日韩欧美中文一区二区| 亚洲黄色在线视频| 日本一区二区三区dvd视频在线| 亚洲视频一区二区在线观看| 成人欧美一区二区三区白人| 一区二区三区四区激情| 欧美精品视频www在线观看| 成人av网站在线观看| 亚洲一线二线三线久久久| 国产精品欧美久久久久无广告| 日韩视频免费观看高清在线视频| 狠狠狠色丁香婷婷综合久久五月| 国产精品国产三级国产普通话三级 | 亚洲午夜在线电影| 日韩精品免费视频人成| 菠萝蜜视频在线观看一区| 在线综合亚洲欧美在线视频| 亚洲美女视频一区| 国产一区二区精品久久| 欧美丰满一区二区免费视频| 国产精品网站在线| 日韩国产欧美在线播放| 色网站国产精品| 亚洲人成人一区二区在线观看 | 日韩一区二区三区四区五区六区| 中文字幕av不卡| 麻豆91精品91久久久的内涵| 91精品免费在线| 一区二区视频免费在线观看| 色嗨嗨av一区二区三区| 亚洲激情网站免费观看| 欧美三区在线视频| 全部av―极品视觉盛宴亚洲| 欧美一区二区在线免费播放| 日本在线不卡视频| xvideos.蜜桃一区二区| 国产高清成人在线| 亚洲精品中文在线观看| 欧美在线看片a免费观看| 天堂精品中文字幕在线| 国产麻豆精品在线| 中文字幕日韩一区| 日韩视频一区二区三区| 国产99久久久国产精品潘金| 一本一道波多野结衣一区二区| 欧美精品一二三区| 不卡电影免费在线播放一区| 色猫猫国产区一区二在线视频| 欧美成人一区二区三区片免费| 日韩欧美中文字幕公布| 欧美久久久久久久久| 欧美三区在线观看| 欧美日韩精品欧美日韩精品| 精品视频在线免费看| 欧美在线你懂的| 欧美久久一二区| 337p亚洲精品色噜噜狠狠| 9191成人精品久久| 欧美这里有精品| 欧美伊人久久大香线蕉综合69| 国产日韩欧美a| 欧美亚一区二区| 91视频观看视频| 国产成人鲁色资源国产91色综 | 亚洲欧洲精品天堂一级| 91麻豆精品秘密| 成人黄色电影在线 | 国产欧美精品区一区二区三区| 日本韩国一区二区| 成人av资源在线| 国产精品1区2区3区| 国产乱妇无码大片在线观看| 日韩av高清在线观看| 日韩成人一区二区三区在线观看| 亚洲精品综合在线| 亚洲成人动漫在线观看| 夜夜嗨av一区二区三区四季av| 亚洲视频精选在线| 亚洲综合一区二区精品导航| 亚洲精品福利视频网站| 1024国产精品| 婷婷国产在线综合| 久久国产福利国产秒拍| 国产精品一区二区男女羞羞无遮挡 | 亚洲精品国产一区二区三区四区在线| 久久久久久久久97黄色工厂| 久久精品在这里| 欧美中文字幕一区| 国产99一区视频免费| 国产美女精品在线| 一区视频在线播放| 欧美日韩国产天堂| 欧美日本视频在线| 91浏览器打开| 日韩欧美一区二区视频| 中文乱码免费一区二区| 亚洲成av人片在线观看无码| 国产一区二区三区电影在线观看| 91看片淫黄大片一级| 精品久久国产字幕高潮| 日韩和欧美一区二区三区| 国产一区二区不卡| 欧洲国产伦久久久久久久| 欧美videossexotv100| 成人一级视频在线观看| 一本一道波多野结衣一区二区| 欧美精品久久一区二区三区| 国产日韩精品一区二区浪潮av | 夜夜嗨av一区二区三区网页 | 欧美四级电影在线观看| 日韩欧美中文字幕一区| 亚洲精品视频一区| 99久久久久久99| 久久久精品国产免费观看同学| 一区二区三区在线免费观看| 国产一区二区在线观看视频| 欧美日韩另类一区| 亚洲免费观看高清在线观看| 国产福利一区二区| 亚洲国产精品成人综合色在线婷婷 | 精品国一区二区三区| 亚洲欧美二区三区| 色播五月激情综合网| 中文字幕一区在线| 99国产精品99久久久久久| 欧美国产综合色视频| 狠狠色丁香久久婷婷综| 亚洲视频在线一区二区| 国精产品一区一区三区mba视频 | 欧美高清视频在线高清观看mv色露露十八 | 欧日韩精品视频| 一区二区三区在线观看网站| 日av在线不卡| 欧美日韩国产美| 亚洲激情欧美激情| 91福利小视频| 一区二区三区四区视频精品免费| 91在线视频免费观看| 国产精品无码永久免费888| 国产黄人亚洲片| 国产免费久久精品| 成人18视频在线播放|