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

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

?? datum.c

?? 給予QT的qps開源最新源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
  {
    error_code |= DATUM_NOT_INITIALIZED_ERROR;
  }
  return (error_code);
} /* End Datum_Ellipsoid_Code */


long Retrieve_Datum_Type (const long Index,
                          Datum_Type *Type)
{ /* Begin Retrieve_Datum_Type */
  /*
   *  The function Retrieve_Datum_Type returns the type of the datum referenced by
   *  index.
   *
   *  Index   : The index of a given datum in the datum table.        (input)
   *  Type    : The type of datum referenced by index.                (output)
   */

  long error_code = DATUM_NO_ERROR;

  if (Datum_Initialized)
  {
    if ((Index < 1) || (Index > Number_of_Datums))
      error_code |= DATUM_INVALID_INDEX_ERROR;
    else
      *Type = Datum_Table[Index-1]->Type;
  }
  else
  {
    error_code |= DATUM_NOT_INITIALIZED_ERROR;
  }
  return (error_code);
} /* End Retrieve_Datum_Type */


long Datum_Seven_Parameters (const long Index, 
                             double *Delta_X,                             
                             double *Delta_Y,
                             double *Delta_Z,
                             double *Rx, 
                             double *Ry, 
                             double *Rz, 
                             double *Scale_Factor)

{ /* Begin Datum_Seven_Parameters */
  /*
   *   The function Datum_Seven_Parameters returns the seven parameters 
   *   for the datum referenced by index.
   *
   *    Index      : The index of a given datum in the datum table.  (input)
   *    Delta_X    : X translation in meters                         (output)
   *    Delta_Y    : Y translation in meters                         (output)
   *    Delta_Z    : Z translation in meters                         (output)
   *    Rx         : X rotation in radians                           (output)
   *    Rx         : Y rotation in radians                           (output)
   *    Ry         : Z rotation in radians                           (output)
   *    Scale_Factor : Scale factor                                  (output)
   */

  long error_code = DATUM_NO_ERROR;

  if (Datum_Initialized)
  {
    if (Index > 0 && Index <= Number_of_Datums)
    {
      *Delta_X = Datum_Table[Index-1]->Parameters[0];
      *Delta_Y = Datum_Table[Index-1]->Parameters[1];
      *Delta_Z = Datum_Table[Index-1]->Parameters[2];
      *Rx = Datum_Table[Index-1]->Parameters[3];
      *Ry = Datum_Table[Index-1]->Parameters[4];
      *Rz = Datum_Table[Index-1]->Parameters[5];
      *Scale_Factor = Datum_Table[Index-1]->Parameters[6];
    }
    else
    {
      error_code |= DATUM_INVALID_INDEX_ERROR;
    }
  }
  else
  {
    error_code |= DATUM_NOT_INITIALIZED_ERROR;
  }
  return (error_code);
} /* End Datum_Seven_Parameters */


long Datum_Three_Parameters (const long Index, 
                             double *Delta_X,
                             double *Delta_Y,
                             double *Delta_Z)
{ /* Begin Datum_Three_Parameters */
  /*
   *   The function Datum_Three_Parameters returns the three parameters
   *   for the datum referenced by index.
   *
   *    Index      : The index of a given datum in the datum table.  (input)
   *    Delta_X    : X translation in meters                         (output)
   *    Delta_Y    : Y translation in meters                         (output)
   *    Delta_Z    : Z translation in meters                         (output)
   */

  long error_code = DATUM_NO_ERROR;

  if (Datum_Initialized)
  {
    if (Index > 0 && Index <= Number_of_Datums)
    {
      *Delta_X = Datum_Table[Index-1]->Parameters[0];
      *Delta_Y = Datum_Table[Index-1]->Parameters[1];
      *Delta_Z = Datum_Table[Index-1]->Parameters[2];
    }
    else
    {
      error_code |= DATUM_INVALID_INDEX_ERROR;
    }
  }
  else
  {
    error_code |= DATUM_NOT_INITIALIZED_ERROR;
  }
  return (error_code);
} /* End Datum_Three_Parameters */

long Datum_Errors (const long Index, 
                   double *Sigma_X,
                   double *Sigma_Y,
                   double *Sigma_Z)
{ /* Begin Datum_Errors */
/*
 *   The function Datum_Errors returns the standard errors in X,Y, & Z 
 *   for the datum referenced by index.
 *
 *    Index      : The index of a given datum in the datum table   (input)
 *    Sigma_X    : Standard error in X in meters                   (output)
 *    Sigma_Y    : Standard error in Y in meters                   (output)
 *    Sigma_Z    : Standard error in Z in meters                   (output)
 */

  long error_code = DATUM_NO_ERROR;

  if (Datum_Initialized)
  {
    if (Index > 0 && Index <= Number_of_Datums)
    {
      *Sigma_X = Datum_Table[Index-1]->Sigma_X;
      *Sigma_Y = Datum_Table[Index-1]->Sigma_Y;
      *Sigma_Z = Datum_Table[Index-1]->Sigma_Z;
    }
    else
    {
      error_code |= DATUM_INVALID_INDEX_ERROR;
    }
  }
  else
  {
    error_code |= DATUM_NOT_INITIALIZED_ERROR;
  }
  return (error_code);
} /* End Datum_Errors */


long Datum_Valid_Rectangle ( const long Index,
                             double *South_latitude,
                             double *North_latitude,
                             double *West_longitude,
                             double *East_longitude)
{ /* Begin Datum_Valid_Rectangle */
  /*
   *   The function Datum_Valid_Rectangle returns the edges of the validity 
   *   rectangle for the datum referenced by index.
   *
   *   Index          : The index of a given datum in the datum table   (input)
   *   South_latitude : Southern edge of validity rectangle in radians  (output)
   *   North_latitude : Northern edge of validity rectangle in radians  (output)
   *   West_longitude : Western edge of validity rectangle in radians   (output)
   *   East_longitude : Eastern edge of validity rectangle in radians   (output)
   */
  long error_code = DATUM_NO_ERROR;

  if (Datum_Initialized)
  {
    if (Index > 0 && Index <= Number_of_Datums)
    {
      *South_latitude = Datum_Table[Index-1]->South_latitude;
      *North_latitude = Datum_Table[Index-1]->North_latitude;
      *West_longitude = Datum_Table[Index-1]->West_longitude;
      *East_longitude = Datum_Table[Index-1]->East_longitude;
    }
    else
    {
      error_code |= DATUM_INVALID_INDEX_ERROR;
    }
  }
  else
  {
    error_code |= DATUM_NOT_INITIALIZED_ERROR;
  }
  return (error_code);
} /* End Datum_Valid_Rectangle */


long Datum_User_Defined ( const long Index,
						              long *result )

{ /* Begin Datum_User_Defined */
/*
 *    Index    : Index of a given datum in the datum table (input)
 *    result   : Indicates whether specified datum is user defined (1)
 *               or not (0)                                (output)
 *
 *  The function Datum_User_Defined checks whether or not the specified datum is 
 *  user defined. It returns 1 if the datum is user defined, and returns
 *  0 otherwise. If index is valid DATUM_NO_ERROR is returned, otherwise
 *  DATUM_INVALID_INDEX_ERROR is returned.
 */

  long error_code = DATUM_NO_ERROR;
  
  *result = FALSE;

  if (Datum_Initialized)
  {
    if ((Index < 1) || (Index > Number_of_Datums))
      error_code |= DATUM_INVALID_INDEX_ERROR;
    else
	{
      if (Datum_Table[Index-1]->User_Defined)
	    *result = TRUE;
	}
  }
  else
    error_code |= DATUM_NOT_INITIALIZED_ERROR;
  return (error_code);
} /* End Datum_User_Defined */


long Valid_Datum(const long Index,
                 double latitude,
                 double longitude,
                 long *result)
{ /* Begin Valid_Datum */
  /*
   *  This function checks whether or not the specified location is within the 
   *  validity rectangle for the specified datum.  It returns zero if the specified
   *  location is NOT within the validity rectangle, and returns 1 otherwise.
   *
   *   Index     : The index of a given datum in the datum table      (input)
   *   latitude  : Latitude of the location to be checked in radians  (input)
   *   longitude : Longitude of the location to be checked in radians (input)
   *   result    : Indicates whether location is inside (1) or outside (0)
   *               of the validity rectangle of the specified datum   (output)
   */
  long error_code = DATUM_NO_ERROR;
  *result = 0;
  if (Datum_Initialized)
  {
    if (Index <= 0 || Index >= Number_of_Datums)
      error_code |= DATUM_INVALID_INDEX_ERROR;
    if ((latitude < MIN_LAT) || (latitude > MAX_LAT))
      error_code |= DATUM_LAT_ERROR;
    if ((longitude < MIN_LON) || (longitude > MAX_LON))
      error_code |= DATUM_LON_ERROR;
    if (!error_code)
    {
      if ((Datum_Table[Index-1]->South_latitude <= latitude) &&
          (latitude <= Datum_Table[Index-1]->North_latitude) &&
          (Datum_Table[Index-1]->West_longitude <= longitude) &&
          (longitude <= Datum_Table[Index-1]->East_longitude))
      {
        *result = 1;
      }
      else
      {
        *result = 0;
      }
    }
  }
  else
  {
    error_code |= DATUM_NOT_INITIALIZED_ERROR;
  }
  return (error_code);
} /* End Valid_Datum */


void Geocentric_Shift_WGS72_To_WGS84(const double X,
                                     const double Y,
                                     const double Z,
                                     double *X_WGS84,
                                     double *Y_WGS84,
                                     double *Z_WGS84)

{ /* Begin Geocentric_Shift_WGS72_To_WGS84 */
  /*
   *  This function shifts a geocentric coordinate (X, Y, Z in meters) relative
   *  to WGS72 to a geocentric coordinate (X, Y, Z in meters) relative to WGS84.
   *
   *  X       : X coordinate relative to WGS72            (input)
   *  Y       : Y coordinate relative to WGS72            (input)
   *  Z       : Z coordinate relative to WGS72            (input)
   *  X_WGS84 : X coordinate relative to WGS84            (output)
   *  Y_WGS84 : Y coordinate relative to WGS84            (output)
   *  Z_WGS84 : Z coordinate relative to WGS84            (output)
   */
  double Lat_72; /* Latitude relative to WGS72                   */
  double Lon_72; /* Longitude relative to WGS72                  */
  double Hgt_72; /* Height relative to WGS72                     */
  double Lat_84; /* Latitude relative to WGS84                   */
  double Lon_84; /* Longitude relative to WGS84                  */
  double Hgt_84; /* Heightt relative to WGS84                    */
  double a_72;   /* Semi-major axis in meters of WGS72 ellipsoid */
  double f_72;   /* Flattening of WGS72 ellipsoid                */
  double a_84;   /* Semi-major axis in meters of WGS84 ellipsoid */
  double f_84;   /* Flattening of WGS84 ellipsoid                */

  /* Set WGS72 ellipsoid params */
  WGS72_Parameters(&a_72, &f_72);
  Set_Geocentric_Parameters(a_72, f_72);
  Convert_Geocentric_To_Geodetic(X, Y, Z, &Lat_72, &Lon_72, &Hgt_72);
  Geodetic_Shift_WGS72_To_WGS84(Lat_72, Lon_72, Hgt_72, &Lat_84, &Lon_84,
                                &Hgt_84);
  /* Set WGS84 ellipsoid params */
  WGS84_Parameters(&a_84, &f_84);
  Set_Geocentric_Parameters(a_84, f_84);
  Convert_Geodetic_To_Geocentric(Lat_84, Lon_84, Hgt_84, X_WGS84, Y_WGS84,
                                 Z_WGS84);
} /* End Geocentric_Shift_WGS72_To_WGS84 */


void Geocentric_Shift_WGS84_To_WGS72(const double X_WGS84,
                                     const double Y_WGS84,
                                     const double Z_WGS84,
                                     double *X,
                                     double *Y,
                                     double *Z)

{ /* Begin Geocentric_Shift_WGS84_To_WGS72 */
  /*
   *  This function shifts a geocentric coordinate (X, Y, Z in meters) relative
   *  to WGS84 to a geocentric coordinate (X, Y, Z in meters) relative to WGS72.
   *
   *  X_WGS84 : X coordinate relative to WGS84            (input)
   *  Y_WGS84 : Y coordinate relative to WGS84            (input)
   *  Z_WGS84 : Z coordinate relative to WGS84            (input)
   *  X       : X coordinate relative to WGS72            (output)
   *  Y       : Y coordinate relative to WGS72            (output)
   *  Z       : Z coordinate relative to WGS72            (output)
   */
  double Lat_72; /* Latitude relative to WGS72                   */
  double Lon_72; /* Longitude relative to WGS72                  */
  double Hgt_72; /* Height relative to WGS72                     */
  double Lat_84; /* Latitude relative to WGS84                   */
  double Lon_84; /* Longitude relative to WGS84                  */
  double Hgt_84; /* Heightt relative to WGS84                    */
  double a_72;   /* Semi-major axis in meters of WGS72 ellipsoid */
  double f_72;   /* Flattening of WGS72 ellipsoid      */
  double a_84;   /* Semi-major axis in meters of WGS84 ellipsoid */
  double f_84;   /* Flattening of WGS84 ellipsoid      */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品午夜春色av| 日韩电影在线观看电影| 亚洲一区二区三区中文字幕在线| 日韩国产精品91| 春色校园综合激情亚洲| 在线成人av网站| 成人免费在线观看入口| 国产在线一区观看| 日韩一区二区三区电影| 一区二区三区免费在线观看| 国产寡妇亲子伦一区二区| 在线播放欧美女士性生活| 亚洲女子a中天字幕| 国产伦精品一区二区三区在线观看| 欧美精品日韩精品| 亚洲欧美色一区| www.激情成人| 国产精品美女久久久久久久久久久 | 久久亚洲精品小早川怜子| 亚洲高清视频中文字幕| 91在线观看免费视频| 国产精品蜜臀在线观看| 国产成人高清视频| 国产亚洲综合av| 久久精品国产亚洲a| 欧美乱妇20p| 亚洲123区在线观看| 91久久国产综合久久| 日韩毛片高清在线播放| jlzzjlzz亚洲女人18| 国产精品久久看| 成人黄色软件下载| ㊣最新国产の精品bt伙计久久| 国产成a人亚洲精| 国产精品美女久久久久aⅴ| 东方欧美亚洲色图在线| 国产精品免费久久久久| 色综合天天综合在线视频| 亚洲免费高清视频在线| 精品婷婷伊人一区三区三| 亚洲大片免费看| 日韩三区在线观看| 国产一区亚洲一区| 国产欧美日韩一区二区三区在线观看| 国产精品一区二区三区四区| 亚洲国产高清不卡| 91福利社在线观看| 日本三级韩国三级欧美三级| 日韩视频一区二区在线观看| 国产精品一区二区在线观看网站| 中文字幕欧美日韩一区| 色94色欧美sute亚洲线路一久 | 日韩经典一区二区| 制服丝袜亚洲色图| 狠狠色丁香婷综合久久| 国产精品久久久久久久岛一牛影视 | 成人av第一页| 亚洲国产精品视频| 欧美精品一区二区久久婷婷| 国产成人精品免费视频网站| 亚洲欧洲中文日韩久久av乱码| 欧美日韩中文另类| 国产精品影视网| 亚洲狠狠丁香婷婷综合久久久| 5月丁香婷婷综合| 国产一区二区三区在线看麻豆| 亚洲视频一区二区在线| 欧美一区二区视频在线观看2020| 精品一区二区三区免费| 一区二区久久久久| 亚洲精品在线一区二区| 91在线视频在线| 久久97超碰色| 一区二区三区四区视频精品免费| 日韩精品在线网站| 一本大道久久a久久综合| 精品无码三级在线观看视频 | 精品欧美一区二区久久| av电影一区二区| 久久狠狠亚洲综合| 亚洲一区二区三区影院| 国产三区在线成人av| 欧美人成免费网站| 波多野结衣在线aⅴ中文字幕不卡| 免费在线观看不卡| 一区二区三区电影在线播| 国产喂奶挤奶一区二区三区| 欧美日韩一区不卡| 色又黄又爽网站www久久| 国产在线看一区| 日本亚洲免费观看| 亚洲在线观看免费| 亚洲桃色在线一区| 国产精品情趣视频| 欧美va亚洲va| 欧美一区二区三区影视| 色久优优欧美色久优优| 97久久超碰国产精品| 国产.欧美.日韩| 国产乱一区二区| 久久精品72免费观看| 日韩精品一区第一页| 亚洲一区二区三区视频在线| 亚洲色欲色欲www在线观看| 精品福利一区二区三区| 日韩午夜av一区| 在线不卡欧美精品一区二区三区| 欧洲一区在线电影| 91啦中文在线观看| 色综合天天性综合| 91一区二区在线| 成人一级视频在线观看| 国产精品77777| 国产精品88888| 国产91高潮流白浆在线麻豆| 国产成人午夜视频| 白白色 亚洲乱淫| www.色综合.com| 色国产综合视频| 欧美色图在线观看| 337p亚洲精品色噜噜狠狠| 91精品婷婷国产综合久久竹菊| 欧美一区二区性放荡片| 日韩欧美一区在线| 久久久国产精品不卡| 中文字幕av不卡| 亚洲乱码中文字幕| 亚洲成人黄色影院| 久久国产精品区| 成人精品免费网站| 91丨porny丨国产入口| 欧美探花视频资源| 日韩色视频在线观看| 国产欧美日韩中文久久| 1000精品久久久久久久久| 亚洲成人一区在线| 卡一卡二国产精品| 成人免费不卡视频| 欧美女孩性生活视频| 精品少妇一区二区三区在线播放 | 国产在线视频一区二区三区| 国产成人免费xxxxxxxx| 欧美写真视频网站| 欧美videos中文字幕| 亚洲欧美综合色| 五月婷婷综合激情| 国产91露脸合集magnet| 欧美日韩色一区| 久久精品视频一区二区| 亚洲国产欧美日韩另类综合| 久久99精品久久久| 色嗨嗨av一区二区三区| 日韩三级视频中文字幕| 亚洲视频图片小说| 国产一区美女在线| 欧美综合天天夜夜久久| 精品毛片乱码1区2区3区| 亚洲乱码国产乱码精品精小说 | 婷婷中文字幕一区三区| 国产精品一二三四区| 日本道在线观看一区二区| 日韩一区二区中文字幕| 亚洲欧美日韩国产综合| 国产成人日日夜夜| 69精品人人人人| 亚洲欧美日韩精品久久久久| 国产一区视频网站| 8x8x8国产精品| 日韩理论片网站| 国产中文字幕精品| 这里只有精品99re| 亚洲综合精品久久| 成人中文字幕合集| 日韩精品专区在线| 视频一区中文字幕| 色婷婷av一区二区三区大白胸| 久久久午夜精品| 麻豆精品精品国产自在97香蕉| 91久久精品一区二区三区| 国产片一区二区三区| 久久99久久久久久久久久久| 欧美色手机在线观看| 中文字幕一区二| 国产精品1024久久| 久久久美女艺术照精彩视频福利播放| 五月婷婷综合在线| 欧美日韩久久久| 亚洲成人av在线电影| 欧美三级日韩三级国产三级| 亚洲老妇xxxxxx| 日本黄色一区二区| 亚洲蜜臀av乱码久久精品| 91亚洲男人天堂| 亚洲欧洲制服丝袜| 色综合久久六月婷婷中文字幕| 综合色天天鬼久久鬼色| 成人性生交大片免费看视频在线| 国产日韩欧美高清| 成人一道本在线| 综合网在线视频|