diff options
| -rw-r--r-- | FS/FS/geocode_Mixin.pm | 23 | 
1 files changed, 14 insertions, 9 deletions
| diff --git a/FS/FS/geocode_Mixin.pm b/FS/FS/geocode_Mixin.pm index 9ac8e7a88..d821c8031 100644 --- a/FS/FS/geocode_Mixin.pm +++ b/FS/FS/geocode_Mixin.pm @@ -143,15 +143,20 @@ sub set_coord {    #my $module = FS::Conf->new->config('geocode_module') || 'Geo::Coder::Googlev3';    my $geocoder = Geo::Coder::Googlev3->new; -  my $location = $geocoder->geocode( location => -    $self->get($pre.'address1'). ','. -    ( $self->get($pre.'address2') ? $self->get($pre.'address2').',' : '' ). -    $self->get($pre.'city'). ','. -    $self->get($pre.'state'). ','. -    code2country($self->get($pre.'country')) -  ); - -  #errors? + +  my $location = eval { +    $geocoder->geocode( location => +      $self->get($pre.'address1'). ','. +      ( $self->get($pre.'address2') ? $self->get($pre.'address2').',' : '' ). +      $self->get($pre.'city'). ','. +      $self->get($pre.'state'). ','. +      code2country($self->get($pre.'country')) +    ); +  }; +  if ( $@ ) { +    warn "geocoding error: $@\n"; +    return; +  }    my $geo_loc = $location->{'geometry'}{'location'} or return;    if ( $geo_loc->{'lat'} && $geo_loc->{'lng'} ) { | 
