我在Geo::Coder::US和Geo::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拥有它想要的一切吗?
答案 0 :(得分:3)
我在this的CPAN文档中找到Geo::Coder::US::Import。您可以将文档中给出的示例与这些文件的新版本一起使用。看起来你应该自己获取文件。它们似乎没有附带模块。
因此,它无法找到数据库文件。
我偷偷看了看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
附加到参数,使其成为文件名。因此,我建议尝试在Census网站上找到当前数据,将其放在工作目录附近,然后再次使用数据的文件名。
答案 1 :(得分:2)
您要查找的文件可能位于此处: ftp://ftp2.census.gov/geo/tiger/TIGER2011/