4

我在Geo::Coder::USGeo::Coder::US::Import工作。他们说我需要导入数据库,他们的示例没有显示如何执行此操作,至少对于现在可行的方式。Geo::Coder::US 想要查看 Berkeley DB。Geo::Coder::US::Import 有示例代码来创建不起作用的数据库。编码:

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

崩溃,说:

无法读取 TGR06075.RTC:./import.pl 第 7 行没有这样的文件或目录

字符串过时了吗?有人可以提供将填充数据库的示例代码,以便 Geo::Coder::US 拥有它想要的一切吗?

4

2 回答 2

3

我在Geo::Coder::US::Import的 CPAN Docs 中找到了这个。您也许可以将文档中给出的示例与这些文件的新版本一起使用。看来您无论如何都应该自己获取文件。它们似乎没有随模块一起提供。

因此,它找不到数据库文件是有道理的。

我偷偷看了一下Import.pm

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 );

看起来它附加.RTC到参数,使其成为文件名。因此,我建议尝试在人口普查网站上查找当前数据,将其放在工作目录附近的某个位置,然后使用数据的文件名再次尝试。

于 2012-06-18T16:43:19.583 回答
2

您要查找的文件可能位于此处: ftp: //ftp2.census.gov/geo/tiger/TIGER2011/

于 2012-06-18T17:11:51.297 回答