免費(基本)/ 付費(高頻與商業用)
功能:距離計算、郵遞區號資料查詢、城市對應 ZIP、半徑搜尋
使用方式:申請帳號
建立一個 api key
程式:Ruby
def lookup(zip_code)
validate_zip_code!(zip_code)
response = make_request("/#{API_KEY}/info.json/#{zip_code}/degrees")
parse_lookup_response(response)
rescue InvalidZipCodeError => e
Rails.logger.warn "Invalid ZIP code: #{zip_code} - #{e.message}"
nil
rescue ApiError => e
Rails.logger.error "ZipCodeAPI lookup failed: #{e.message}"
nil
rescue => e
Rails.logger.error "Unexpected error in lookup: #{e.message}"
nil
end
def complete_address(addr1:, zip_code:, addr2: nil)
validate_address_input!(addr1, zip_code)
zip_data = lookup(zip_code)
unless zip_data
Rails.logger.warn "Cannot complete address: ZIP code lookup failed for #{zip_code}"
return nil
end
complete_data = {
addr1: addr1.to_s.strip,
addr2: addr2.to_s.strip.presence,
zip_code: zip_code,
city: zip_data[:city],
state: zip_data[:state_abbreviation],
full_state: get_state_full_name(zip_data[:state_abbreviation]),
country: 'US',
latitude: zip_data[:latitude],
longitude: zip_data[:longitude],
timezone: zip_data[:timezone]
}
Rails.logger.info "Address completed successfully for ZIP: #{zip_code}"
complete_data
rescue => e
Rails.logger.error "Error completing address: #{e.message}"
nil
end