2012-06-18 1 views
4

저는 Geo::Coder::USGeo::Coder::US::Import에서 일하고 있습니다. 데이터베이스를 가져와야한다고 말하면서, 적어도 지금은 작동하는 방식으로 예제를 사용하는 방법을 보여주지 않습니다. Geo :: Coder :: US는 Berkeley DB를보고 싶어합니다. Geo :: Coder :: US :: Import에는 작동하지 않는 데이터베이스를 만드는 샘플 코드가 있습니다. 코드 :Geo :: Coder :: US 및 Geo :: TigerLine을 사용하여 미국 주소를 지리 공간 좌표로 변환하려면 어떻게해야합니까?

Geo::Coder::US::Import->load_tiger_data("TGR06075"); 

충돌, 말하는 :

TGR06075.RTC을 읽을 수 없습니다 : ./import.pl 라인 7

에서 해당 파일이나 디렉토리를 문자열이되어 구식인가? 데이터베이스를 채울 샘플 코드를 누군가가 제공 할 수 있습니까? Geo :: Coder :: US 그것이 원하는 모든 것을 가지고 있습니까?

답변

3

Geo::Coder::US::Import의 CPAN 문서에서 this을 찾았습니다. 문서에있는 예제를이 파일의 새 버전과 함께 사용할 수 있습니다. 어쨌든 파일을 직접 가져 오는 것으로 보입니다. 그들은 모듈과 함께 오는 것 같지 않습니다.

따라서 데이터베이스 파일을 찾을 수 없다는 의미입니다.

나는 Import.pm에 모습을 몰래 : 그것은 파일 이름 만들기, 인수에 .RTC를 추가처럼

sub load_tiger_data { 
    my ($class, $source) = @_; 

    my $DB = \%Geo::Coder::US::DB; 
    croak "No database specified" unless tied(%$DB); 

    open TIGER, "<$source.RTC" or croak "can't read $source.RTC: $!"; 
    Geo::TigerLine::Record::C->parse_file(\*TIGER, \&_type_C); 

    open TIGER, "<$source.RT1" or croak "can't read $source.RT1: $!"; 
    Geo::TigerLine::Record::1->parse_file(\*TIGER, \&_type_1); 

보인다. 따라서 Census 웹 사이트에서 최신 데이터를 찾아 작업 디렉토리 근처에 배치 한 다음 데이터 파일 이름으로 다시 시도하는 것이 좋습니다.