The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

̾Á°

Location::GeoTool - ÃÏÍý¾ðÊó¤ò°·¤¦Perl¥â¥¸¥å¡¼¥ë

³µÍ×

  use Location::GeoTool;

  my $oGeo = Location::GeoTool->create_coord('35.39.24.491','139.40.10.478','tokyo','gpsone');
  my @mapion = $oGeo->format_mapion->array;
   # => ("35/39/24.491","139/40/10.478")
  my $oGeoW = $oGeo->datum_wgs84;
  my @wgs84 = ($oGeoW->lat,$oGeoW->long);
   # => ("35.39.36.145","139.39.58.871")
  my @degree_wgs84 = $oGeoW->format_second;
   # => (128376.14524...,502798.87076...)

ÀâÌÀ

¥³¥ó¥¹¥È¥é¥¯¥¿¡¡(create_coord)

  my $obj = Location::GeoTool->create_coord($lat,$long,$datum,$format);

Location::GeoTool¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤Þ¤¹¡£

  $lat    : °ÞÅÙ
  $long   : ·ÐÅÙ
  $datum  : ¬ÃÏ·Ï
  $format : ¥Õ¥©¡¼¥Þ¥Ã¥È

ºîÀ®¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ç¥Õ¥©¥ë¥È¤Î¬ÃÏ·Ï¡¢¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï°ú¿ô¤Ç»ØÄꤷ¤¿¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤è¤Ã¤Æ¡¢array,lat,long¥á¥½¥Ã¥ÉÅù¤ÇÊ֤äƤ¯¤ëÃͤϡ¢¥³¥ó¥¹¥È¥é¥¯¥¿¤Ç»ØÄꤷ¤¿¤â¤Î¤ÈƱ¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£ ¬ÃϷϤϰʲ¼¤Îʸ»úÎó¤ÇÍ¿¤¨¤Æ¤¯¤À¤µ¤¤¡£

  À¤³¦(¿·ÆüËÜ)¬ÃÏ·Ï : 'wgs84'
  µìÆüËܬÃÏ·Ï       : 'tokyo'

¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¡¢°Ê²¼¤Îʸ»úÎó¤ÇÍ¿¤¨¤Æ¤¯¤À¤µ¤¤¡£

  MapionURL¥Õ¥©¡¼¥Þ¥Ã¥È (ddd/mm/ss.nnn)  : 'mapion'
  gpsOneɸ½à¥Õ¥©¡¼¥Þ¥Ã¥È(ddd.mm.ss.nnn)  : 'gpsone'
  SpaceTag¥µ¡¼¥Ðɸ½à    (pddmmssnnn)     : 'spacetag'
  dddmmss.nnn·Á¼°                        : 'dmsn'
  ÅÙñ°Ì                (ddd.dddddd...)  : 'degree'
  ÉÃñ°Ì                (ssssss.sss...)  : 'second'
  ¥é¥¸¥¢¥óñ°Ì                           : 'radian'

·Ð°ÞÅÙ¼èÆÀ¥á¥½¥Ã¥É·²

¸½ºß¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀßÄꤵ¤ì¤¿Â¬ÃÏ·Ï¡¦¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤Î¡¢·Ð°ÞÅÙ¤ÎÃͤòÊÖ¤·¤Þ¤¹¡£

  ($lat,$long) = $obj->array;
    or
  $lat = $obj->lat;
  $long = $obj->long;

¬ÃÏ·Ï¡¦¥Õ¥©¡¼¥Þ¥Ã¥ÈÊÑ´¹¥á¥½¥Ã¥É·²

¿·¤·¤¤Â¬ÃÏ·Ï¡¦¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÊÑ´¹¤µ¤ì¤¿¡¢¿·¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤·¤Þ¤¹¡£

  $newobj = $obj->datum_wgs84;
  $newobj = $obj->format_mapion;

ÅùÅù¡£ÅöÁ³¡¢°Ê²¼¤Î¤è¤¦¤Ê»ö¤Ï²Äǽ¤Ç¤¹¡£

  ($lat,$long) = $obj->datum_tokyo->format_radian->array;

½àÈ÷¤µ¤ì¤Æ¤¤¤ëÁ´¥á¥½¥Ã¥É¤Ï¡¢°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£

  À¤³¦(¿·ÆüËÜ)¬ÃϷϤØÊÑ´¹¡§ datum_wgs84
  µìÆüËܬÃϷϤØÊÑ´¹¡§ datum_tokyo
  MapionURL¥Õ¥©¡¼¥Þ¥Ã¥È(ddd/mm/ss.nnn)¤ØÊÑ´¹¡§ format_mapion
  gpsOneɸ½à¥Õ¥©¡¼¥Þ¥Ã¥È(ddd.mm.ss.nnn)¤ØÊÑ´¹¡§ format_gpsone
  SpaceTag¥µ¡¼¥Ðɸ½à(pddmmssnnn)¤ØÊÑ´¹¡§ format_spacetag
  dddmmss.nnn·Á¼°¤ØÊÑ´¹¡§ format_dmsn
  ÅÙñ°Ì(ddd.dddddddd¡Ä)¤ØÊÑ´¹¡§format_degree
  ÉÃñ°Ì(ssssss.sss¡Ä)¤ØÊÑ´¹¡§ format_second
  ¥é¥¸¥¢¥óñ°Ì¤ØÊÑ´¹¡§ format_radian

Ãí°Õ¡§ÊÑ´¹¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¼ÂºÝ¤Ë¤Ï¸µÂ¬ÃÏ·Ï¡¦¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤Î¾ðÊó¤òÊÝ»ý¤·¡¢ ·Ð°ÞÅÙ¼èÆÀ¥á¥½¥Ã¥É·²¤¬¼Â¹Ô¤µ¤ì¤¿»þ¤Ë¡¢¤½¤Î»þ¤ÎÀßÄê¬ÃÏ·Ï¡¦¥Õ¥©¡¼¥Þ¥Ã¥È¤Ø¤ÎÊÑ´¹¤¬ ¼ÂºÝ¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢Â¬ÃÏ·Ï¡¦¥Õ¥©¡¼¥Þ¥Ã¥ÈÊÑ´¹¤È¤â¸íº¹¤ÎÂ礭¤¤½èÍý¤Ç¤¹¤Î¤Ç¡¢½èÍý¤ò·«¤êÊÖ¤¹»ö¤Ç ¼Â°ÌÃÖ¤È¤Î¸íº¹¤¬Â礭¤¯¤Ê¤ë»ö¤òËɤ°¤¿¤á¤Î»ÅÍͤǤ¹¡£ ¤¿¤À¤·¡¢Class::DBI¤È¤ÎÏ¢·ÈÅù¤ò¹Í¤¨¤¿¾ì¹ç¡¢¤É¤ó¤Ê¬ÃÏ·Ï¡¦¥Õ¥©¡¼¥Þ¥Ã¥È¤ÎÃͤòÆþ¤ì¤Æ¤â ÆâÉô¤Çµ¬Äê¤Î¬ÃÏ·Ï¡¦¥Õ¥©¡¼¥Þ¥Ã¥È¤ËÊÑ´¹¤·¤Æ¤¯¤ì¤¿Êý¤¬ÊØÍø¤«¤Ê¡¢¤È¤¤¤¦¥±¡¼¥¹¤â¤¢¤ê ¤Þ¤¹¤Î¤Ç¡¢¤³¤Î»ÅÍͤÏÊѹ¹¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£

Êý¸þ¡¦µ÷Î¥½èÍý¥á¥½¥Ã¥É·²

¸½¥ª¥Ö¥¸¥§¥¯¥È¤òµ¯ÅÀ¤È¤·¤¿¡¢Êý¸þ¡¦µ÷Î¥¤ò°·¤¦Location::GeoTool::Direction ¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë¥á¥½¥Ã¥É·²¤Ç¤¹¡£ Location::GeoTool::Direction¤Ë¤Ä¤¤¤Æ¤ÏƱ¥¯¥é¥¹¤Îpod¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

  my $dirobj = $locobj->direction_point('40/36/14.307','141/01/33.022','tokyo','mapion');
  my ($dir,$dist) = ($dirobj->direction,$dirobj->distance);
    or
  my $direction = $locobj->direction_point($another_locobj)->direction;
    or
  my ($endlat,$endlong) = $locobj->direction_vector($dir,$dist)->to_point->array;

ÅùÅù¡£

direction_point

½ªÅÀ¤ò»ØÄꤷ¤Æ¡¢Location::GeoTool::Direction¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Þ¤¹¡£ »ØÄê¤Ë¤Ï¡¢

  $locobj->direction_point($lat,$long,$datum,$format);

¤Î¤è¤¦¤Ë½ªÅÀ¤Î·Ð°ÞÅÙ¡¦Â¬ÃÏ·Ï¡¦¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ÈÍѤ¹¤ëÊýË¡¡¢ µÚ¤Ó¾¤ÎLocation::GeoTool¥ª¥Ö¥¸¥§¥¯¥È¤ò»ÈÍѤ¹¤ëÊýË¡

  $locobj->direction_point($another_locobj);

¤ÎÁÐÊý¤¬²Äǽ¤Ç¤¹¡£

direction_vector

Êý¸þ¡¦µ÷Î¥¤ò»ØÄꤷ¤ÆLocation::GeoTool::Direction¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Þ¤¹¡£

  $locobj->direction_point($direction,$distance);

Êý¸þ¤ÏË̤ò0¡ë¤È¤·¤ÆÅìÊý¸þ¼þ¤ê¤Ë0¡ë¡Á360¡ë¤ÎÊý°Ì³Ñ¡¢µ÷Î¥¤Ïm¤Ç»ØÄꤷ¤Þ¤¹¡£

°Í¸

Math::Trig

´ØÏ¢¾ðÊó

·Ð°ÞÅÙ2ÅÀ¡Áµ÷Î¥¡¦Êý¸þ¤ÎÁÐÊý¸þÊÑ´¹Æ³½Ð¥¢¥ë¥´¥ê¥º¥à¤Ï¡¢ http://williams.best.vwh.net/gccalc.htm¤Ë¤ª¤¤¤Æ¡¢ Ed Williams»á¤¬JavaScript¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤ò°Ü¿¢¤·¤Þ¤·¤¿¡£

¬ÃÏ·ÏÊÑ´¹¤ÎƳ½Ð¥¢¥ë¥´¥ê¥º¥à¤Ï¡¢ http://homepage3.nifty.com/Nowral/02_DATUM/Molodensky.html¤Ë¤ª¤¤¤Æ¡¢ Nowral»á¤¬Perl CGI¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤ò°Ü¿¢¤·¤Þ¤·¤¿¡£

¤³¤ì¤é¤Î¥µ¥¤¥È¤Ë´¶¼Õ¤¤¤¿¤·¤Þ¤¹¡£

¤³¤Î¥â¥¸¥å¡¼¥ë¤Ï¡¢¤³¤³¥®¥³¡ª¥¦¥§¥Ö¥µ¥¤¥È¡¡¡§¡¡http://kokogiko.net/ ¤Ë¤Æ¥µ¥Ý¡¼¥È¤¤¤¿¤·¤Þ¤¹¡£

ºî¼Ô

ÂçÄÍ ¹±Ê¿, <nene@kokogiko.net>

Ãøºî¸¢¡¦¥é¥¤¥»¥ó¥¹

Copyright (C) 2003,2004 SpaceTag Inc.,

Ëܥ饤¥Ö¥é¥ê¤Ï¥Õ¥ê¡¼¥½¥Õ¥È¤Ç¤¢¤ê¡¢PerlËÜÂΤÈƱ¤¸¾ò·ï¤Ç¤ÎºÆÇÛÉÛ¡¦²þÊѤ¬²Äǽ¤Ç¤¹¡£

1 POD Error

The following errors were encountered while parsing the POD:

Around line 1:

Non-ASCII character seen before =encoding in '̾Á°'. Assuming CP1252